2016-08-05 4 views
2

После обновления до Django 1.10, я получаю следующее сообщение об ошибке при запуске python manage.py runserver:Ошибка Django: ваш шаблон URL недействителен. Убедитесь в том, что urlpatterns список URL() экземпляры

?: (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. 

Мои urlpatterns заключаются в следующем:

from myapp.views import home 

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

ответ

7

Для упростить конфигурацию URL, patterns() устарел в Django 1.8 и удален в 1.10 (release notes). В Django 1.10, urlpatterns должен быть список url() экземпляров. Использование кортежа в patterns() больше не поддерживается, а оболочка Django проверит ошибку.

Крепление это легко, просто конвертировать любые кортежи

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

в url() случаях:

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

Если вы получаете следующие NameError,

NameError: name 'url' is not defined 

затем добавьте следующий импорт к вашему urls.py:

from django.conf.urls import url 

Если вы используете строки в своих шаблонах URL, например. 'myapp.views.home', вам придется обновить их, чтобы использовать вызываемые одновременно. См. this answer для получения дополнительной информации.

См. Django URL dispatcher docs для получения дополнительной информации о urlpatterns.

0

Проверьте, чтобы увидеть, если вы использовали шаблоны URL, как это:

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

Изменить это:

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

 Смежные вопросы

  • Нет связанных вопросов^_^