2011-01-09 13 views
5

मेरे पास निम्न श्रेणी है जिसका उपयोग मैं बुकमार्क आइटमों के लिए कर रहा हूं:मैं Django टेम्पलेट में एक रिवर्स जेनेरिक रिलेशनशिप कैसे पार कर सकता हूं?

class BookmarkedItem(models.Model): 
    is_bookmarked = models.BooleanField(default=False) 
    user = models.ForeignKey(User) 
    content_type = models.ForeignKey(ContentType) 
    object_id = models.PositiveIntegerField() 
    content_object = generic.GenericForeignKey() 

और मैं निम्न प्रकार के रिवर्स जेनेरिक रिलेशनशिप को निम्नानुसार परिभाषित कर रहा हूं:

class Link(models.Model): 
    url = models.URLField() 
    bookmarks = generic.GenericRelation(BookmarkedItem) 

मेरे विचारों में से मैं सभी की एक क्वेरीसेट उत्पन्न करता हूं लिंक और इसे किसी संदर्भ में जोड़ें:

links = Link.objects.all() 
context = { 
    'links': links 
} 
return render_to_response('links.html', context) 

मेरी समस्या यह है कि मेरे टेम्पलेट में सामान्य संबंधों को कैसे पार किया जाए। प्रत्येक लिंक के लिए मैं is_bookmarked विशेषता को जांचने में सक्षम होना चाहता हूं और उपयोगकर्ता को पहले ही बुकमार्क किया गया है या नहीं, इसके अनुसार बुकमार्क जोड़ें/हटाएं बटन बदलें। क्या यह टेम्पलेट में करना संभव है? या मुझे दृश्य में कुछ अतिरिक्त फ़िल्टरिंग करना है और एक और क्वेरीसेट पास करना है?

उत्तर

4

जब से तुम 'बुकमार्क' GenericRelation क्षेत्र को परिभाषित किया है, तो आप उस के माध्यम से पुनरावृति कर सकते हैं:

{% for bookmark in link.bookmarks.all %} 
संबंधित मुद्दे