2011-02-03 11 views
12

मैं यह जांचने की कोशिश कर रहा हूं कि कोई आइटम किसी टेम्पलेट के अंदर सूची (सेट) में है या नहीं।Django - जांचें कि सूची में टेम्पलेट में कुछ है

मैं इस सवाल यहाँ मिल गया है: Is it possible, in a django template, to check if an object is contained in a list

लेकिन समाधान मेरे लिए काम नहीं कर रहा है।

मैं इस कोशिश कर रहा हूँ:

{% if trip in request.user.trip_set.all %} 

जहां यात्रा एक यात्रा का एक उदाहरण है, उपयोगकर्ता एक उपयोगकर्ता है, ट्रिप एक ManyToManyField, उपयोगकर्ता से कनेक्ट TripReservation के माध्यम से

class TripReservation(models.Model): 
    user = models.ForeignKey(User) 
    trip = models.ForeignKey(Trip) 

class Trip(models.Model): 
    members = models.ManyToManyField(User,blank=True,null=True,through='TripReservation') 
+0

आप Django का किस संस्करण का उपयोग कर रहे हैं? यह नवीनतम संस्करण में काम करना चाहिए। – MattoTodd

+0

मैं Django 1.2 का उपयोग कर रहा हूँ। मुझे लगता है कि ऐसा इसलिए है क्योंकि यह एक क्वेरीसेट – JPC

उत्तर

1
है

request.user.trip_set.all एक सूची नहीं है लेकिन एक प्रश्नपत्र है। मुझे लगता है कि यह आपकी समस्या का कारण है। आप इसे dictsort टेम्पलेट फ़िल्टर के साथ एक सूची में बदलने की कोशिश कर सकते हैं।

{% if trip in request.user.trip_set.all|dictsort:"id" %} 
+0

है जो काम नहीं करता है। मुझे नहीं लगता कि डिक्टॉर्ट्स क्वेरीसेट्स को सूचियों में परिवर्तित करने के लिए है। क्या कोई और तरीका है? – JPC

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