(Django) include не импортирует URL-адреса других приложений

#django #url #include

Вопрос:

В моем проекте Django у меня есть 2 приложения: ядро и книги. В моем core/urls.py, я использую python include('books.url') для импорта URL-адресов из books/urls.py, но я продолжаю получать эту ошибку

введите описание изображения здесь

У меня сейчас возникла эта проблема, которая меня беспокоит. У меня был обходной путь для этого, хотя я действительно хочу это исправить.

core/urls.py

 from django.contrib import admin from django.urls import path from django.conf.urls import include # local  urlpatterns = [  path('/', include('books.urls')),  path('admin/', admin.site.urls), ]   

books/urls.py

 from django.contrib import admin from django.urls import path # local from graphene_django.views import GraphQLView from books.schema import schema  urlpatterns = [  path('graphql/', GraphQLView.as_view(graphiql=True, schema=schema)),  ]   

Как и предполагал SO, у меня есть:

  1. положите книги.URL-адреса внутри одинарных кавычек ‘ ‘
  2. поместил path('/', include('books.urls')) сверху
  3. переключиться с from django.urls import include на from django.conf.urls import include

Единственный обходной путь, который у меня есть, — это поместить все URL-адреса в core/urls.py, но в долгосрочной перспективе это кажется слишком громоздким. Я не понимаю, почему include это работает для всех, но не для меня!

Не могли бы вы помочь мне с этим вопросом? Спасибо!

Ответ №1:

Теперь GraphQLView вызывается по URL 127.0.0.1:8000/graphql/ -адресу , если вы хотите вызвать его по URL 127.0.0.1:8000/ -адресу , вам нужно изменить свой код:

core/urls.py

 from django.contrib import admin from django.urls import path from django.conf.urls import include # local  urlpatterns = [  path('/', include('books.urls')),  path('admin/', admin.site.urls), ]  

books/urls.py

 from django.contrib import admin from django.urls import path # local from graphene_django.views import GraphQLView from books.schema import schema  urlpatterns = [  path('/', GraphQLView.as_view(graphiql=True, schema=schema)),  ]