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

15 投票
1 回答
12156 浏览
提问于 2025-04-16 11:08

我正在尝试在一个模板中检查某个项目是否在一个列表(集合)里。

我在这里找到了这个问题:

在Django模板中,是否可以检查一个对象是否包含在一个列表中

不过这个解决方案对我来说不管用。

我正在尝试这个:

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

这里的trip是一个Trip的实例,user是一个User,Trip通过TripReservation与User有一个多对多的关系。

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 个回答

2

request.user.trip_set.all 不是一个列表,而是一个查询集(queryset)。我觉得这可能是你遇到问题的原因。你可以尝试用字典排序的模板过滤器把它转换成一个列表。

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

撰写回答