Django/Python:{%语法不起作用.

use*_*410 1 python django

我是django的新手(在django 1.8上学习)并且正在做这个教程 https://django-by-errors.readthedocs.org/en/latest/

这就是模型的样子.

class Food(models.Model):
    name = models.CharField(max_length=20)
    def __unicode__(self):
        return self.name

    def get_absolute_url(self):
        return reverse(viewname="food-detail", args=[self.id])

    def get_list_url(self):
        return reverse(viewname="food-list")
Run Code Online (Sandbox Code Playgroud)

这就是我的网址模式的样子

urlpatterns = [
    #url(r'^$', views.index, name='index'),
    url(r'^$', views.current_datetime),
    #url(r'^food/$', food_list, name='food-list'),
    url(r'^food/$', FoodListView.as_view(), name='food-list'),
    url(r'^food/(?P<pk>\d+)$', FoodDetailView.as_view(), name='food-detail'),
]
Run Code Online (Sandbox Code Playgroud)

现在,在模板文件(food_detail.html)中,以下语法有效

<p><a href="{{ object.get_list_url }}">Back to food list</a></p>
Run Code Online (Sandbox Code Playgroud)

但是这种语法不起作用

p><a href="{% url food-list %}">Back to food list</a></p>
Run Code Online (Sandbox Code Playgroud)

它抛出错误 无法解析剩余部分:'-list'来自'food-list'

我想知道为什么会出现这个错误.请帮忙!我正在使用django 1.8

Max*_*fer 7

正确的语法是 {% url 'food-list' %}

您需要将模板中的链接更改为:

<p><a href="{% url 'food-list' %}">Back to food list</a></p>