2017-04-24 46 views
1

我有一個使用的URL模板標籤這樣一個古老的Django應用程序:Django的命名URL參數不再工作,以1.10或1.11

{% url 'smart_service.views.view_name' %} 

到目前爲止,它的工作很大,但更新版本後, 1.10沒有任何工作了,任何使用這種方式返回NoReverseMatch

我可以把app_name = 'smart_service'到我urls.py文件,並通過更改URL標記這個解決這個問題:

{% url 'smart_service:view_name' %} 

這是一個繁瑣的任務,很容易出錯,我想,以避免它除非嚴格必要。

第一個用例已被棄用嗎?如果沒有,爲什麼它不再工作?使用其中一種還是有特定的優勢?

回答

3

當您升級到Django 1.10+時,無法避免此更改。

支持使用虛線Python路徑反轉網址爲deprecated in Django 1.8removed in 1.10

您必須將您的{% url %}標籤更改爲使用視圖名稱,例如

{% url 'view_name' %} 

如果添加命名空間到你的urls.py,例如app_name = 'smart_service',則必須包括在{% url %}標籤的命名空間。

{% url 'smart_service:view_name' %}