我有一个旧的Django应用程序,它以这种方式使用URL模板标记:
{% url 'smart_service.views.view_name' %}
到目前为止,它工作得很好,但是在更新到版本1.10之后,没有任何工作了,任何使用都会返回NoReverseMatch
。
我可以通过将app_name = 'smart_service'
放入我的urls.py
文件并将url标记更改为此来解决此问题:
{% url 'smart_service:view_name' %}
这是一项繁琐的工作,很容易出错,除非有必要,否则我要避免使用它。
第一个用例是否已被弃用?如果没有,为什么它不再起作用?使用其中一种是否有特定的优势?
答案 0 :(得分:3)
升级到Django 1.10 +时,无法避免此更改。
使用虚线Python路径支持反转网址是deprecated in Django 1.8和removed in 1.10。
您必须更改{% url %}
代码才能使用视图名称,例如
{% url 'view_name' %}
如果您向urls.py
添加名称空间,例如app_name = 'smart_service'
,则必须在{% url %}
标记中包含名称空间。
{% url 'smart_service:view_name' %}