我正在尝试为体育网站创建一个子菜单。每项运动都需要自己的子菜单。我遇到的问题是我需要命名空间本身以某种方式是动态的。
SportListView 返回体育项目,以便我可以按体育项目过滤新闻文章。
Views:
class SportListView(ListView):
template_name="sports/sport-home.html"
context_object_name='sport_list'
def get_context_data(self, **kwargs):
context = super(SportListView, self).get_context_data(**kwargs)
context['sport_menu'] = get_object_or_404(Sport,
sport_slug=self.kwargs['sport_slug'])
return context
模板:
<nav class="navbar navbar-expand-lg main-nav">
<a href="{% url 'sports:sport-home' sport_menu.sport_slug %}">
{{sport_menu.name}}</a>
<a href="{% url sport_menu.sport_slug 'monthly' %}">Monthly View</a>
</nav>
子菜单中的第一个链接工作正常。正如您所看到的,它有效地充当了每项运动的主页按钮。
另一方面,第二个链接则不然。在错误消息中,它返回了运动的 slug,但我无法将其用作命名空间。
顺便说一句,我确实有一个应用程序及其 URLs.py 文件,为当前的运动正确配置。所以我知道这不是问题。
edit:
我使用此配置收到的当前错误消息是:
未找到“板球”的反向内容。 “cricket”不是有效的视图
函数或模式名称。
您可以使用add模板过滤器:
<a href="{% url sport_menu.sport_slug|add:':monthly' %}">Monthly View</a>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)