我是Django的新手,我在這裏閱讀了很多主題,但沒有找到解決方案。我相信這很容易,但我找不到解決方案。升級後的NoReverseMatch錯誤Django版本
基本上我有我的urls.py在Django 1.8.4精碼和作品:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^leds/', include('ledscontrol.urls')),
url(r'^', 'controli2c.view.view_home'),
]
我的模板文件包含
{% url 'controli2c.views.view_home' as home_url%}
<a href="{% url 'controli2c.views.view_home' %}" {% if request.path == home_url %} class="active"{% endif %} >HOME</a>
當我更新的Django,我得到的錯誤「在include()」的情況下,TypeError:視圖必須是可調用的或列表/元組。然後,我改變我的urls.py代碼:
from django.conf.urls import include, url
from django.contrib import admin
from . import views
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^leds/', include('ledscontrol.urls')),
url(r'^', 'views.view_home'),
]
現在,我有NoReverseMatch當我打開瀏覽器(http://localhost:8000):
「反向的「controli2c.view.view_home找不到。 'controli2c.views.view_home'不是有效的視圖函數或模式名稱。「
在論壇上,我發現一個帖子:
「的解決方案是更新urls.py包括視圖可調用這意味着,你必須輸入你的urls.py. 認爲如果您的網址格式沒有名稱,現在是添加網址的好時機,因爲使用虛線python路徑反轉不再起作用。「
我認爲這是我的問題。但我不知道我必須做什麼改變。
任何人都可以幫到我嗎?
非常感謝!
哪一點你不明白?你需要使用可調用的而不是字符串,並且你需要給它一個特定的名字。 –
看起來你正在使用[這個項目](https://github.com/blobsmith/controli2c)。它尚未更新18個月,因此尋找另一個圖書館可能會更好。如果你決定使用它,那麼我會堅持使用Django 1.8.X(最新的版本是1.8.18),而不是試圖升級它,特別是如果你是Django的新手。 Django 1.8是一款LTS,因此將至少支持至2018年4月。 – Alasdair