Круговой импорт в Джанго

Я пытался запустить клиент-серверное приложение, используя 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"),
] 
Другие вопросы по тегам