В django, когда я пытаюсь запустить сервер, я хочу сначала увидеть страницу входа в систему, но я вижу страницу индекса?
Прилагаю свой код в views и urls.py. Когда сервер запускается, я хочу сначала увидеть страницу входа, но я вижу ошибку, что эта страница не работает.
def loginPage(request): if request.user.is_authenticated: return redirect('/') else: if request.method == 'POST': имя пользователя = request.POST.get('username') пароль = request.POST.get('password')
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('/')
        else:
            messages.info(request, 'Username OR password is incorrect')
    context = {}
    return render(request, 'accounts/login.html', context)
urlpatterns = [
path('', views.loginPage, name="login"),
path('index/',views.index,name="index"),
                
Вы должны передать декоратор @login_required в вашем представлении. Если вы не хотите передавать этот декоратор в каждом представлении, есть второй способ, который вы можете сделать с помощью промежуточного ПО. В промежуточном ПО вы проверяете, аутентифицирован пользователь или нет. Если да, то он перенаправляет пользователя на индексную страницу, в противном случае - на страницу входа. Вот пример:
Создайте файл middleware.py и напишите в нем следующий код:
from django.utils.deprecation import MiddlewareMixin
from django.urls import reverse
from django.shortcuts import redirect
class LoginCheckMiddleWare(MiddlewareMixin):
    def process_view(self, request, view_func, view_args, view_kwargs):
        modulename = view_func.__module__
        user = request.user # Who is the current user ?
        if user.is_authenticated:
                return redirect(reverse('index-page'))
        else:
            if request.path == reverse('login_page') or modulename == 'django.contrib.auth.views':
                pass
            else:
                return redirect(reverse('login_page'))
После этого добавьте эту строку внутри MIDDLEWARE в settings.py файл:
'folder.middleware.LoginCheckMiddleWare', вместо folder запишите ваш промежуточный файл, расположенный folder