2016-08-05 3 views
2

Nach dem Upgrade 1.10 Django, ich die folgende Fehlermeldung erhalten, wenn ich python manage.py runserver laufen:Django-Fehler: Ihr URL-Muster ist ungültig. Stellen Sie sicher, dass urlpatterns ist eine Liste von URL() Instanzen

?: (urls.E004) Your URL pattern ('^$', 'myapp.views.home') is invalid. Ensure that urlpatterns is a list of url() instances. 
HINT: Try using url() instead of a tuple. 

Meine urlpatterns sind wie folgt:

from myapp.views import home 

urlpatterns = [ 
    (r'^$', home, name='home'), 
] 

Antwort

7

zu URL-Konfigurationen vereinfachen, patterns() wurde in Django 1.8 veraltet und in 1.10 entfernt (release notes). In Django 1.10 muss eine Liste von url() Instanzen sein. Die Verwendung eines Tupel in patterns() wird nicht mehr unterstützt, und das Django-Check-Framework wird einen Fehler auslösen.

Dies zu beheben, ist einfach, umbauen alle Tupel

urlpatterns = [ 
    (r'^$', home, name='home'), # tuple 
] 

zu url() Instanzen:

urlpatterns = [ 
    url(r'^$', home, name='home'), # url instance 
] 

Wenn Sie die folgende NameError erhalten,

NameError: name 'url' is not defined 

dann die folgenden Import hinzufügen zu Ihrem urls.py:

from django.conf.urls import url 

Wenn Sie Zeichenfolgen in Ihren URL-Mustern verwenden, z. 'myapp.views.home' müssen Sie diese aktualisieren, um gleichzeitig eine aufrufbare Nachricht zu verwenden. Weitere Informationen finden Sie unter this answer.

Weitere Informationen zu urlpatterns finden Sie unter Django URL dispatcher docs.

0

Überprüfen Sie, ob Sie die URL-Muster wie folgt verwendet:

urlpatterns += (
    (r'^404/$', page_not_found_view), 
) 

Ändern Sie es an:

urlpatterns += [ 
    url(r'^404/$', page_not_found_view), 
] 
Verwandte Themen