如何解决Django 1.5版:“ url”需要一个非空的第一个参数语法在Django 1.5中已更改?
我真的很讨厌用手做所有这些垃圾,所以我写了一个sed脚本来替我做。确保先备份,然后在模板目录中运行此备份:
find . -type f -print0 | xargs -0 sed -i 's/{% url (12*)/{% url "\1"/g'
它会遍历所有模板文件并替换为:
{% url something.else foo bar %}
有了这个
{% url "something.else" foo bar %}
请注意,我对此有点懒,它可能会在某些结构上中断。不过,在差异中查找错误仍然比手工操作要容易得多。
解决方法
我开始使用Django 1.5版,而我的旧代码出现了问题:
{{post.title}}
错误:“ url”需要一个非空的第一个参数。语法在Django 1.5中已更改,请参阅文档。文件:
值得注意的一项不推荐使用的功能是转向“新型” URL标签。在Django 1.3之前,诸如{%url myview%}之类的语法被错误解释(Django认为“ myview”是视图的文字名称,而不是名为myview的模板变量)。Django 1.3及更高版本引入了{未来的%加载网址}语法,以引入更正的行为,其中myview被视为变量。
这样的结果是,如果你在模板中未使用{%将来的%}加载URL,则需要将{%url myview%}之类的标签更改为{%url“ myview”%}。如果你使用的是{未来的%加载网址},则可以在Django 1.5下简单地删除该行
{{post.title}}
但是对于’auto.views.view_post’却出现了错误反向,其中未找到参数’(’,)’和关键字参数’{}’。:(我做错了什么?声明: 地推任务网所有作品(图片、文字)均由用户自行上传分享,仅供网友学习交流。