Проект Django перенаправляет на URL /accounts/login/, несмотря на настройку пользовательских URL

Я работаю над проектом Django и столкнулся с проблемой, когда функциональность входа в систему перенаправляет на URL-адреса типа /accounts/login/ или /accounts/profile/, которые я не настраивал.

Я настроил представления входа и регистрации и удалил стандартные URL-адреса аутентификации Django. Однако сервер, похоже, перенаправляет на эти пути по умолчанию.

Вот подробности проблемы:

Настройка проекта:

Версия Django: 5.1 Реализованы пользовательские представления для входа, регистрации и выхода. urls.py в моем приложении не включает URL-адреса аутентификации Django по умолчанию. urls.py в приложении (firstapp/urls.py):

python

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path("", views.index, name="index"),
    path("index/", views.index, name="index"),
    path("error/", views.custom_404, name="error"),
    path("login/", views.login, name="login"),
    path("register/", views.register, name="register"),
    path("profile/", views.profile, name="profile"),
    path("logout/", views.logout, name="logout"),
    # Remove or comment out the line below
    # path("accounts/", include("django.contrib.auth.urls")),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

# Remove or comment out handler404 if not using custom 404 view
# handler404 = views.custom_404

Файл видов (views.py):

python

from django.shortcuts import render, redirect
from django.contrib.auth import login as auth_login, logout as auth_logout
from django.contrib.auth import update_session_auth_hash
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User, auth
from .models import Customer
from django.contrib import messages
from .forms import CustomerUpdateForm, CustomerPasswordChangeForm

Просматривает код...

Описание проблемы: Несмотря на настройку пользовательских URL и удаление включения стандартных URL аутентификации Django, при попытке входа в систему приложение перенаправляет на /accounts/login/ и /accounts/profile/, что приводит к ошибке 404, как показано на скриншоте введите описание изображения здесь.

Вопрос:

Почему мой проект Django перенаправляет на URL /accounts/login/ и /accounts/profile/, и как я могу убедиться, что он использует только пользовательские URL, которые я определил? Есть ли еще какие-либо настройки или конфигурации, которые я могу упустить и которые могут вызвать эту проблему?

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

Заранее благодарю за помощь!

Я пытался искать проблему, я искал на ChatGPT и Claude AI, я пытался добавить url в свой путь, но это не сработало

Я думаю, что это будет полезно для вас:

https://docs.djangoproject.com/en/5.1/ref/settings/#:~:text=for%20more%20details.-,LOGIN_REDIRECT_URL,-%C2%B6

Вам нужно украсить свои представления, используя login_not_required

from django.contrib.auth.decorators import login_not_required 
@login_not_required
def public_view(request):
    return HttpResponse("This is a public view accessible without login.")

# Using Class Based Views
from django.utils.decorators import method_decorator
from django.views.generic import TemplateView


@method_decorator(login_not_required, name='dispatch')
class PublicView(TemplateView):
   ...

Для получения дополнительной информации читайте документацию здесь

Вернуться на верх