升级到 1.10 或 1.11 后,名为 URL 的 Django 参数不再有效
Django named URL parameters no longer working after upgrade to 1.10 or 1.11
我有一个旧的 Django 应用程序,它以这种方式使用 URL 模板标签:
{% url 'smart_service.views.view_name' %}
到目前为止效果很好,但是在更新到 1.10 版后就没有任何效果了,任何使用都是这样 returns NoReverseMatch
.
我可以通过将 app_name = 'smart_service'
放入我的 urls.py
文件并将 url 标记更改为以下内容来解决此问题:
{% url 'smart_service:view_name' %}
这是一项繁琐的任务,很容易出错,除非绝对必要,否则我想避免它。
第一个用例是否已弃用?如果没有,为什么它不再工作了?使用其中一种有什么具体优势吗?
当您升级到 Django 1.10+ 时,您无法避免此更改。
使用虚线 Python 路径反转 url 的支持是 deprecated in Django 1.8 and removed in 1.10。
您必须更改 {% url %}
标签才能使用视图名称,例如
{% url 'view_name' %}
如果您向 urls.py
添加命名空间,例如 app_name = 'smart_service'
,则必须在 {% url %}
标记中包含命名空间。
{% url 'smart_service:view_name' %}
我有一个旧的 Django 应用程序,它以这种方式使用 URL 模板标签:
{% url 'smart_service.views.view_name' %}
到目前为止效果很好,但是在更新到 1.10 版后就没有任何效果了,任何使用都是这样 returns NoReverseMatch
.
我可以通过将 app_name = 'smart_service'
放入我的 urls.py
文件并将 url 标记更改为以下内容来解决此问题:
{% url 'smart_service:view_name' %}
这是一项繁琐的任务,很容易出错,除非绝对必要,否则我想避免它。
第一个用例是否已弃用?如果没有,为什么它不再工作了?使用其中一种有什么具体优势吗?
当您升级到 Django 1.10+ 时,您无法避免此更改。
使用虚线 Python 路径反转 url 的支持是 deprecated in Django 1.8 and removed in 1.10。
您必须更改 {% url %}
标签才能使用视图名称,例如
{% url 'view_name' %}
如果您向 urls.py
添加命名空间,例如 app_name = 'smart_service'
,则必须在 {% url %}
标记中包含命名空间。
{% url 'smart_service:view_name' %}