2015-12-05 1 views
17

Недавно я обновил свой проект Django до версии 1.9.Новый формат url в Django 1.9

Когда я пытаюсь запустить migrate, я получаю следующие две ошибки:

  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.

Может кто-то пожалуйста, покажите мне правильный синтаксис того, как это сделать? Краткий пример моего urls.py ниже:

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

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

Спасибо!

+1

Вот [doc] (https://docs.djangoproject.com/en/1.9/ref/urls/#url) – styvane

ответ

24

Импорт Ваше отношение прямо или ваших просмотров модулей:

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

Не используйте patterns, просто используйте список или кортеж:

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

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

Вы должны удалить цитаты с указанием видов. Так что ваш код будет как то

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

пункта 2, использовать списки, так что ваш код будет трансформироваться в

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