【问题标题】:Django - check if list contains something in a templateDjango - 检查列表是否包含模板中的某些内容
【发布时间】:2011-06-20 09:49:12
【问题描述】:

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

我在这里找到了这个问题: Is it possible, in a django template, to check if an object is contained in a list

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

我正在尝试这个:

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

其中trip是Trip的一个实例, 用户是用户, 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')

【问题讨论】:

  • 你使用的是什么版本的 Django?这应该可以在最新版本中使用。
  • 我使用的是 Django 1.2。我认为这是因为那是一个查询集

标签: python django django-models django-templates


【解决方案1】:

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

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

【讨论】:

  • 那行不通。我不认为 dictsort 用于将查询集转换为列表。还有其他方法吗?
猜你喜欢
  • 2011-10-26
  • 1970-01-01
  • 2020-08-22
  • 2017-05-21
  • 1970-01-01
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多