2010-05-26 15 views
6

अगर मैं दो सरल मॉडल:Django: हटाने सभी M2M संबंधों

class Tag(models.Model): 
    name = models.CharField(max_length=100) 

class Post(models.Model): 
    title = models.CharField(max_length=100) 
    tags = models.ManyToManyField(Tag, blank=True) 

टैग add इसे करने के लिए एड की संख्या के साथ एक के बाद वस्तु को देखते हुए, मैं उनमें से किसी को दूर करने के लिए गर्म है, लेकिन कैसे करना है एक द्रव्यमान हटा दें (सभी को हटा दें)? धन्यवाद

उत्तर

21

क्या आपने Post.tags.clear() को आजमाया है?

+0

यह 'through' मॉडल का उपयोग करने की पर क्वेरी करने की जरूरत है रिश्ते के प्रबंधक https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField.through .... इस धागे में मेरा उत्तर देखें – Rach

-3

यदि आपको केवल 2 मॉडल के बीच सभी उदाहरणों के लिए संबंध हटाने की आवश्यकता है तो आप रिलेशनशिप टेबल के प्रबंधक तक पहुंच कर ऐसा कर सकते हैं। M2M संबंध तालिका ताकि रिश्तों को हटाने यह आसान हो जाता है के लिए MyModel.relations.through के माध्यम से पहुँचा जा सकता है:

MyModel.relations.through.objects.all().delete() 

संदर्भ:

https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField.through

+0

आपने प्रश्न को गलत तरीके से दिया: "दिया गया एक पोस्ट ऑब्जेक्ट "का अर्थ है कि पिस्टैचिओ ** केवल उस विशिष्ट 'पोस्ट' के संबंधों को हटाना चाहता है, ** पूरे डेटाबेस में प्रत्येक 'पोस्ट' और' टैग' के बीच हर संबंध नहीं। इस मामले में, 'पोस्ट' ऑब्जेक्ट पर '.tags.clear()' को कॉल करना बिल्कुल पिस्तैचिओ चाहता है। –

+0

धन्यवाद आप मुझे सही करने के लिए। शीर्षक भ्रामक था और मैं जो कर रहा हूं वह करने की तलाश में था इसलिए मैंने इस धागे को अपडेट किया। – Rach

संबंधित मुद्दे