Укажите аргумент пространства имен для include () вместо django 3.0 - PullRequest
4 голосов
/ 06 января 2020

В Django 3.0 это выдает ошибку:

django.core.exceptions.ImproperlyConfigured: Passing a 3-tuple to include() is not supported. Pass a 2-tuple containing the list of patterns and app_name, and provide the namespace argument to include() instead.

Как мне изменить url(r'^admin/', include(admin.site.urls))? Я пытался посмотреть документацию,

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^hello/', include(myapp.views)),
]

Ответы [ 2 ]

1 голос
/ 06 января 2020

удалить include из административных URL и использовать путь

from django.urls import path, include
urlpatterns = [
   path('admin/', admin.site.urls),
   path('hello/', include('myapp.views')),
]

см. Это django 3 do c.

0 голосов
/ 06 января 2020

Проблема с include(myapp.views):

  • Сначала вы должны включить строку (include('myapp.views')), а не фактический модуль. Вот что вызывает ошибку.
  • Но во-вторых, вы не включаете представления, вы включаете другие шаблоны URL. Поэтому, если myapp.views не содержит верхнего уровня urlpatterns, вы также получите ошибку.

Наконец, как указал @ c .grey, используйте path(), а не url().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...