【发布时间】:2013-01-30 16:58:32
【问题描述】:
我开始使用 Django 1.5 版,但我的旧代码出现问题:
<a href="{% url auto.views.viewpost post.slug %}"><h3>{{post.title}}</h3></a>
错误:“url”需要一个非空的第一个参数。 Django 1.5 中的语法发生了变化,请参阅文档。 文档:
一个值得注意的弃用功能是转向“新式”网址 标签。在 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 from 未来 %} 你可以简单地在 Django 1.5 下删除该行
然后我尝试:
<a href=“{% url ‘auto.views.view_post’ post.slug %}”><h3>{{post.title}}</h3></a>
但“auto.views.view_post”出现错误 Reverse,参数“(”,)”和关键字参数“{}”未找到。 :(
我究竟做错了什么?
谢谢!
【问题讨论】:
-
auto在 Django 的PYTHONPATH上吗?也许你需要像'somedir.auto.views.view_post'这样的东西?还有一个更明显的问题,你的 URLconf 中是否提到了auto.views.view_post?