带有slug的模板中的Django URL

时间:2017-07-28 06:59:28

标签: django

我有一个模板(home.html),我想列出我模型中的所有项目,当我点击它们时,它会将用户带到项目的详细信息页面。

2 个答案:

答案 0 :(得分:3)

在循环中,您调用每个对象item。但是在URL标记中,您引用了instance,它不存在。你也应该在那里使用item

{% url 'show_menuitem' menuitem_slug=item.slug %}

答案 1 :(得分:0)

您的错误显示找不到关键字参数,因为您在menuitem_slug网址中定义了名为show_menuitem的关键字参数,但是您将slug作为关键字参数传递,而不是django网址模式正在寻找对

更改此行,

 <h2><a href="{% url 'show_menuitem' slug=instance.slug %}">{{ item }}</a></h2>

 <h2><a href="{% url 'show_menuitem' menuitem_slug=item.slug %}">{{ item }}</a></h2>

还要确保将get_absolute_url方法更改为

def get_absolute_url(self):
    return reverse('show_menuitem', kwargs={'menuitem_slug': self.slug})