Django - 模板中如何检查列表是否包含某个元素

15
我想要检查一个项目是否在模板内的列表(集合)中。
我在这里找到了这个问题: 在Django模板中,检查对象是否包含在列表中 然而,这个解决方法对我不起作用。
我正在尝试这样做:
{% if trip in request.user.trip_set.all %}

trip是Trip的实例,user是User,Trip通过TripReservation与User建立了ManyToManyField连接。

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')

1
你使用的是哪个版本的Django?在最新版本中应该可以工作。 - MattoTodd
1
我正在使用Django 1.2。我认为这是因为它是一个查询集。 - JPC
1个回答

2

request.user.trip_set.all 不是一个列表,而是一个查询集。我认为这就是你遇到问题的原因。你可以尝试使用 dictsort 模板过滤器将其转换为列表。

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

那行不通。我不认为dictsort用于将querysets转换为列表。还有其他方法吗? - JPC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接