Django - 检查列表是不是包含模板中的某些内容
Posted
技术标签:
【中文标题】Django - 检查列表是不是包含模板中的某些内容【英文标题】: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。我认为这是因为那是一个查询集 【参考方案1】:request.user.trip_set.all
不是一个列表,而是一个查询集。我认为这是你的问题的原因。您可以尝试使用 dictsort 模板过滤器将其更改为列表。
% if trip in request.user.trip_set.all|dictsort:"id" %
【讨论】:
那行不通。我不认为 dictsort 用于将查询集转换为列表。还有其他方法吗?以上是关于Django - 检查列表是不是包含模板中的某些内容的主要内容,如果未能解决你的问题,请参考以下文章
在 Django 中,是不是可以从包含标记内的父模板上下文访问当前用户会话?