2010-11-14 6 views
5

दस्तावेज़ीकरण के अनुसार एपीआई एक साधारण ManyToManyField के साथ प्राप्त करने योग्य लगता है ... मुझे क्या याद आ रही है? Django-Taggit प्रलेखन सेDjango-Taggit टैगिंग के एक साधारण ManyToManyField() कार्यान्वयन पर क्या लाभ प्रदान करता है?

नमूना:

class Food(models.Model): 
    # ... fields here 

    tags = TaggableManager() 

तो फिर तुम जैसे एपीआई का उपयोग कर सकते हैं ताकि ::

>>> apple = Food.objects.create(name="apple") 
>>> apple.tags.add("red", "green", "delicious") 
>>> apple.tags.all() 
[<Tag: red>, <Tag: green>, <Tag: delicious>] 
>>> apple.tags.remove("green") 
>>> apple.tags.all() 
[<Tag: red>, <Tag: delicious>] 
>>> Food.objects.filter(tags__name__in=["red"]) 
[<Food: apple>, <Food: cherry>] 

उत्तर

2

वास्तविक लाभ एक वस्तु का टैग को ढूंढने में नहीं है, बल्कि एक टैग के लिए वस्तुओं। और विशेष रूप से, अगर आप वस्तुओं है कि टैग किया जा सकता पास अनेक प्रकार के, कल्पना:

class Food(models.Model): 
    tags = models.ManyToManyField(Tag) 

class Wine(models.Model): 
    tags = models.ManyToManyField(Tag) 

अब मुझे टैग किया "बैंगनी" वस्तुओं के सभी उदाहरणों पाते हैं। टैगगिट ऐसा करने में बहुत आसान बनाता है।

+2

तो आपके उदाहरण में, सभी टैग किए गए उदाहरण प्राप्त करने का एकमात्र तरीका Tag.food_set.all(), Tag.wine_set.all() होगा? अगर मुझे पूरा यकीन है कि विभिन्न प्रकारों को टैग करने की आवश्यकता नहीं होगी, तो एक बहुत से TanyMieldField ठीक होना चाहिए? – kliao

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

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