Круговой импорт в Джанго
Я пытался запустить клиент-серверное приложение, используя Django. Когда я пытаюсь запустить свой сервер в Django, он выдает мне следующую ошибку.
django.core.exceptions.ImproperlyConfigured: включенный URLconf '' не содержит никаких шаблонов. Если вы видите допустимые шаблоны в файле, то проблема, вероятно, вызвана циклическим импортом.
Проект urls.py -
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('chat.views')),
]
Приложение views.py -
from django.shortcuts import render
from django.http import JsonResponse
def home(request):
if request.method == 'POST':
if request.is_ajax():
//code
return JsonResponse(data)
return render(request,'index.html')
Куда я иду не так?
2 ответа
include
метод принимает модель приложения urls.py, а не views.py. Вам нужно создать urls.py
файл внутри вашего приложения и заменить url(r'^', include('chat.views'))
с url(r'^', include('chat.urls'))
в проектах URL-файл. Смотрите Django документы.
Метод include в файле url.py используется для включения шаблонов URL, указанных в другом файле. и когда вы делаете этот URL (r '^', include ('chat.views')), он не может найти шаблоны URL в файле представлений. Отсюда и ошибка:
django.core.exceptions.ImproperlyConfigured: включенный URLconf '' не содержит никаких шаблонов. Если вы видите допустимые шаблоны в файле, то проблема, вероятно, вызвана циклическим импортом.
мы обычно создаем файл urls.py в нашей папке приложения и записываем все наши шаблоны URL для этого приложения в этом файле. создайте новый файл urls.py в папке вашего приложения и запишите шаблоны URL в этот файл.
а затем включите файл urls.py вашего приложения в основной файл urls.py следующим образом:-
url(r'^', include('chat.urls')),
и файл вашего приложения urls.py должен выглядеть так:
from django.conf.urls import url
urlpatterns = [
url(r'', views.home, name = "home")),
]
Вы можете узнать больше о URL-адресах Django из документации:- URL-адреса Django
И если вы не хотите создавать новый файл urls.py в каталоге вашего приложения, то вы можете просто импортировать ваши представления в основной файл urls.py и записать шаблон URL в этом файле. тогда ваш основной файл urls.py будет выглядеть так:
from django.conf.urls import url,include
from django.contrib import admin
from chat.views import home
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', home, name = "home"),
]