Django - 检查列表是否包含模板中的内容

JPC*_*JPC 13 python django django-templates django-models

我正在尝试检查项目是否在模板内的列表(集)中.

我在这里找到了这个问题: 在django模板中,是否有可能检查一个对象是否包含在列表中

但是解决方案对我不起作用.

我正在尝试这个:

{% if trip in request.user.trip_set.all %}
Run Code Online (Sandbox Code Playgroud)

其中trip是Trip的一个实例,user是User,Trip有一个ManyToManyField通过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')
Run Code Online (Sandbox Code Playgroud)

luc*_*luc 2

request.user.trip_set.all不是列表而是查询集。我认为这是你的问题的原因。您可以尝试使用 dictsort 模板过滤器将其更改为列表。

{% if trip in request.user.trip_set.all|dictsort:"id" %}
Run Code Online (Sandbox Code Playgroud)