Попытка отследить циклическую ошибку импорта в Django Python - PullRequest
1 голос
/ 02 февраля 2020

Я понимаю, что много раз задавался вопрос об циклическом импорте, но после прохождения этих вопросов я не смог решить свою проблему. Когда я пытаюсь запустить свой сервер в Django, он выдает мне следующее сообщение об ошибке:

django .core.exceptions.ImproperlyConfigured: включенный URLconf 'starsocial.urls' не отображается иметь какие-то шаблоны в нем. Если вы видите в файле действительные шаблоны, то проблема, вероятно, вызвана циклическим импортом.

Проблема началась, когда я добавил новое приложение с URL-адресом, как показано ниже:

from django.conf.urls import url
from django.contrib.auth import views as auth_views
from . import views

app_name = 'accounts'
urlpatterns = [
    url(r'login/$', 
        auth_views.LoginView.as_view(template_name='accounts/login.html'), 
        name='login'),
    url(r'logout/$',auth_views.LogoutView.as_view(), name='logout'),
    url(r'signup/$',views.SignUp.as_view(), name='signup'),

]

Мой проект urls.py имеет строку, которая указывает на приложение и выглядит следующим образом:

from django.contrib import admin
from django.urls import path,include
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^admin/',admin.site.urls),
    url(r'^$', views.HomePage.as_view(), name='home'),
    url(r'^accounts/', include('accounts.urls', namespace='accounts')),
    url(r'^accounts/', include('django.contrib.auth.urls')),
    url(r'^test/$', views.TestPage.as_view(), name='test'),
    url(r'^thanks/$', views.ThanksPage.as_view(), name='thanks')

]

Вид моего приложения выглядит следующим образом:

from django.shortcuts import render
from django.urls import reverse
from django.views.generic import CreateView

from . import forms 
# Create your views here.

class SignUp(CreateView):
    form_class = forms.UserCreateForm
    success_url = reverse('login')
    template_name = 'accounts/signup.html'

Вид моего проекта выглядит следующим образом:

from django.views.generic import TemplateView

class TestPage(TemplateView):
    template_name = 'test.html'

class ThanksPage(TemplateView):
    template_name = 'thanks.html'

class HomePage(TemplateView):
    template_name = 'index.html'

Может кто-нибудь, пожалуйста, помогите мне определить, где я могу ошибаться.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Я импортирую неправильную конфигурацию URL, вместо 'reverse' я должен импортировать 'reverse_lazy', изменив

from django.shortcuts import render
from django.urls import reverse
from django.views.generic import CreateView

from . import forms 
# Create your views here.

class SignUp(CreateView):
    form_class = forms.UserCreateForm
    success_url = reverse('login')
    template_name = 'accounts/signup.html'

на

from django.shortcuts import render
from django.urls import reverse_lazy
from django.views.generic import CreateView

from . import forms
# Create your views here.

class SignUp(CreateView):
    form_class = forms.UserCreateForm
    success_url = reverse_lazy('login')
    template_name = 'accounts/signup.html'
0 голосов
/ 02 февраля 2020

Вы импортируете auth.urls дважды. Удалите url(r'^accounts/', include('django.contrib.auth.urls')) из вашего проекта urls.py

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