我开始使用 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”是一个
view,而不是名为 myview 的模板变量)。 Django 1.3 及以上版本
引入了 {% load url from future %} 语法来引入
更正了 myview 被视为变量的行为。
这样做的结果是,如果您不使用 {% load url from
未来 %} 在你的模板中,你需要更改标签,如 {% url
myview %} 到 {% url "myview" %}。如果您使用的是 {% load url from
future %} 你可以简单地在 Django 1.5 下删除该行
然后我尝试:<a href=“{% url ‘auto.views.view_post’ post.slug %}”><h3>{{post.title}}</h3></a>
但出现错误:“auto.views.view_post”的反向,参数为“(”,)”,且未找到关键字参数“{}”。 :(
我究竟做错了什么?
谢谢!
我真的很讨厌手工做所有这些垃圾,所以我写了一个 sed 脚本来帮我做这件事。确保您首先有备份,然后在模板目录中运行以下命令:
find . -type f -print0 | xargs -0 sed -i 's/{% url \([^" >][^ >]*\)/{% url "\1"/g'
它将遍历所有模板文件并替换它:
{% url something.else foo bar %}
有了这个
{% url "something.else" foo bar %}
小心,我对此有点懒,它可能会破坏某些结构。不过,在差异中查找错误仍然比手动查找错误更容易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)