Подтвердить что ты не робот

Новый формат url в Django 1.9

Недавно я обновил проект Django до версии 1.9.

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

  • 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.
  • 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'),
)

Спасибо!

4b9b3361

Ответ 1

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

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'),
]

Ответ 2

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

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

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

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