【发布时间】:2018-05-22 17:34:20
【问题描述】:
我正在寻找正确的语法来访问我的标签名称。
这是我的看法:
def tag_filter(request, tag):
now = datetime.datetime.now()
concerts = Concert.objects.filter(tags__name__in=[tag])\
.filter(date__gte=now).order_by('date')
return render(request, 'concerts/calendar.html', {'concerts': concerts})
这确实得到了我想要的数据。我想在模板的标题中显示标签的名称,但这是我遇到障碍的地方。我正在尝试这个:
{% elif request.resolver_match.url_name == "tag_filter" %}
<h1>Upcoming Events with "{{ concerts.0.tags.name }}" Tag</h1>
{% endif %}
但是{{ concerts.0.tags.name }} 什么也没返回。我已经尝试了一些变化,但到目前为止还没有。有任何想法吗?谢谢!
编辑添加我的urlconf,以防万一:
url(r'^tag/(?P<tag>[\w-]+)/$', views.tag_filter, name="tag_filter"),
【问题讨论】:
-
你能在渲染视图之前
print(concerts)向我们展示输出吗?也许查询集是空的 -
如果我进入 shell 并运行上面的查询,然后运行
print concerts[0].tags.all(),我得到<QuerySet [<Tag: rock>, <Tag: electronica>]>。但我真的只是想获得与我的网址中相同的标签。
标签: django django-taggit