【发布时间】:2017-08-01 21:58:24
【问题描述】:
我想将过滤后的查询集存储在一个列表中,然后在我的模板中迭代该列表。
我的模型中有一个租户列表,如下所示:
class Tenant(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
telephone = models.CharField(max_length=30)
email = models.CharField(max_length=30)
contract_end = models.DateField(blank=False)
def __str__(self):
return u'%s %s' % (self.first_name, self.last_name)
像这样查看:
def expiry(request):
now = datetime.datetime.now()
tenant_queryset = Tenant.objects.all()
expired_list = []
for x in range(0, 12):
date = now + relativedelta(months=x)
expired = tenant_queryset.filter(
contract_end__year=date.year,
contract_end__month=date.month
)
expired_list.append(expired)
context = {"expired_list": expired_list}
return render(request, "expired_template.html", context)
模板:
{% for tenant in expired_list %}
{{ tenant.first_name }}<br>
{{ tenant.telephone }}<br>
{{ tenant.contract_end }}<br>
{% endfor %}
在我看来,我使用 for 循环来遍历一年中的几个月,然后将这些结果存储在一个列表中。
我似乎无法在我的模板中显示 tenant.first_name、tenant.last_name、tenant.telephone 和 tenant.contract_end 值。我猜这是因为我已经将过滤后的查询集的结果输出到一个列表中,并且它会显示这些结果而不是“参考”,如果这有意义的话。
我该怎么办?
感谢您的帮助。
【问题讨论】:
-
如果以下答案解决了您的问题,请将其标记为已接受。这是 StackOverflow 中的一个很好的做法。
标签: django django-templates django-views