2011-02-03 16 views
12

Estoy tratando de verificar si un artículo está en una lista (conjunto) dentro de una plantilla.Django - compruebe si la lista contiene algo en una plantilla

que he encontrado esta pregunta aquí: Is it possible, in a django template, to check if an object is contained in a list

sin embargo, la solución no está funcionando para mí.

Estoy tratando esto:

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

donde viaje es una instancia de un viaje, usuario es un usuario, de viaje tiene un ManyToManyField conectarlo al usuario, a través de 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

¿Qué versión de Django está utilizando? Eso debería funcionar en la última versión. – MattoTodd

+0

Estoy usando Django 1.2. Creo que es porque es un conjunto de preguntas – JPC

Respuesta

1

request.user.trip_set.all no es una lista sino un conjunto de consulta. Creo que es la razón de tu problema. Puede intentar cambiar eso en una lista con el filtro de plantilla dictsort.

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

Eso no funcionó. No creo que dictsort sea para convertir conjuntos de consulta a listas. ¿Hay otra manera? – JPC

Cuestiones relacionadas