Как проверить, вошел ли администратор django в систему или нет?

У меня есть проект django, в котором есть 2 разные страницы входа.

  1. is in the landing page. ex: https://website.com/
  2. is the django admin login. ex: https://website.com/admin/ For both the login, I am using the same postgres user table.

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

Мой код входа и выхода с целевой страницы

@api_view(['POST'])
    def login(request):
        if request.method == 'POST' and request.data:
            data = request.data
            username = data['username']
            password = data['password']
            user = auth.authenticate(username=username, password=password)
            if (user is not None) and (user.is_active):
                auth.login(request, user)
                token, created = Token.objects.get_or_create(user=user)
                return Response({"username": str(user), "token": token.key, "status": STATUS['SUCCESS'], "message": MESSAGE_SUCCESS['LOGIN']}, status=status.HTTP_200_OK)
            return Response({"status": STATUS['ERROR'], "message": MESSAGE_ERROR['LOGIN']}, status=status.HTTP_200_OK)


@api_view(['POST'])
@authentication_classes((TokenAuthentication,))
@permission_classes((IsAuthenticated,))
def logout(request):
    try:
        if request.method == 'POST' and request.data:
            data = request.data
            username = data['username']
            password = data['password']
            user = auth.authenticate(username=username, password=password)
            auth.logout(request)
            update_session_auth_hash(request, user)
        return Response({"status": STATUS['SUCCESS'], "message": MESSAGE_SUCCESS['LOGOUT']}, status=status.HTTP_200_OK)
    except:
        return Response({"status": STATUS['ERROR'], "message": MESSAGE_ERROR['LOGOUT']}, status=status.HTTP_200_OK)

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

Я не могу войти или выйти из системы на целевой странице входа, когда я вхожу/выхожу из системы входа администратора.

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