named url在django 1.5和python 2.7中不起作用

时间:2013-08-29 10:36:09

标签: python django python-2.7 django-templates django-views

我正在开发自己的博客。一切都很好。我尝试准备部署但没有成功。现在我撤消所有更改,但命名url现在不工作(它们之前完美地工作): 错误:

  

使用参数'()'和未找到关键字参数'{}来反转''main_page''

URL:

urlpatterns = patterns('',
  url(r'^$', main_page, name='main_page'),
  url(r'^blog/', include('blog.blogurls')),
  url(r'^comments/', include('django.contrib.comments.urls')),
)

主页面视图:

def main_page(request):
  object_list = Article.objects.all()
  return render_to_response('blog/main_page.html', {'Latest': object_list}

名为url的用于:

<p><a href="{% url 'main_page' %}">home</a></p>

1 个答案:

答案 0 :(得分:0)

{% url 'main_page' %}替换为{% url main_page %}

引自django 1.5 changelog

  

一个值得注意的弃用功能是转向“新式”网址   标签。在Django 1.3之前,解释了{%url myview%}之类的语法   不正确(Django认为“myview”是一个文字名称   视图,而不是名为myview的模板变量。 Django 1.3及以上版本   引入了{%load url from future%}语法来引入   纠正了将myview视为变量的行为。

     

这样做的结果是,如果你没有使用{%load url from   您的模板中的未来%},您需要更改{%url   myview%}到{%url“myview”%}。如果您使用的是{%load url   未来%}你可以简单地删除Django 1.5下的那行