2011-02-03 6 views
12

Bir öğenin şablonun içinde (ayarlanmış) bir listede olup olmadığını kontrol etmeye çalışıyorum.Django - listeden bir şey içerip içermediğini kontrol edin

Ben bu soruyu burada bulduk: çözüm benim için çalışmıyor ancak Is it possible, in a django template, to check if an object is contained in a list

.

Bunu çalışıyorum:

{% if trip in request.user.trip_set.all %} 
gezi Seyahatteki bir örneğidir

, kullanıcı bir kullanıcı ise, Yolculuk

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

kullandığınız Django sürümü nedir? Bu en son sürümde çalışmalıdır. – MattoTodd

+0

Django 1.2 kullanıyorum. Bence bu bir queryset – JPC

cevap

1
TripReservation aracılığıyla, kullanıcı bağlayarak bir ManyToManyField vardır

request.user.trip_set.all bir liste değil, bir queryset. Bence senin sorununun sebebi bu. Bunu, dictsort şablon filtresine sahip bir listeye değiştirmeyi deneyebilirsiniz.

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

Bu işe yaramadı. Ben dictsort querysets listelerine dönüştürmek için olduğunu sanmıyorum. Başka bir yolu var mı? – JPC