2015-12-05 11 views
17

Ich habe kürzlich mein Django-Projekt auf Version 1.9 aktualisiert.Neues URL-Format in Django 1.9

Wenn ich versuche, migrate zu laufen, ich bin die beiden folgenden Fehlermeldungen erhalten:

  1. Support for string view arguments to url() is deprecated and will be removed in Django 1.10 (got app.views.about). Pass the callable instead.
  2. django.conf.urls.patterns() is deprecated and will be removed in Django 1.10. Update your urlpatterns to be a list of django.conf.urls.url() instances instead.

Könnte mir jemand bitte zeigen die richtige Syntax, wie dies zu tun? Eine kurze Probe meiner urls.py unter:

urlpatterns = patterns('', 
    url(r'^about/$', 'app.views.about', 
     name='about'), 
) 

urlpatterns += patterns('accounts.views', 
    url(r'^signin/$', 'auth_login', 
     name='login'), 
) 

Thank you!

+1

Hier ist der [doc] (https://docs.djangoproject.com/en/1.9/ref/urls/#url) – styvane

Antwort

24

Importieren Sie Ihre Ansichten direkt oder Ihre Ansichten Module verwandeln:

from apps.views import about 
from accounts import views as account_views 

Verwenden Sie nicht patterns überhaupt, verwenden Sie einfach eine Liste oder ein Tupel:

urlpatterns = [ 
    url(r'^about/$', about, 
     name='about'), 
] 

urlpatterns += [ 
    url(r'^signin/$', account_views.auth_login, 
     name='login'), 
] 
4

Sie sollten die Anführungszeichen um Ansichten Namen entfernen. So Ihr Code wie die 2

urlpatterns = patterns('', 
    url(r'^about/$', app.views.about, #without quote! 
     name='about'), 
) 

Punkt sein wird, verwenden, um Listen, so wird Ihr Code zu

urlpatterns = [ 
     url(r'^about/$', app.views.about, #without quote! 
      name='about'), 
    ]