Skip to main content
 首页 » 编程设计

python之Django / python : {% syntax not working.

2025年05月04日24zhujiabin

我是 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") 

这是我的 url 模式的样子

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'), 
] 

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

<p><a href="{{ object.get_list_url }}">Back to food list</a></p> 

但是这个语法不起作用

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

它抛出错误 无法解析剩余部分:“food-list”中的“-list”

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

请您参考如下方法:

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

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

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