Не происходит перенаправления на следующую страницу после входа в систему в Rest Framework

Я пытаюсь перенаправить пользователя на главную страницу после успешного входа в API. Email id и пароль, которые приходят из Angular. Если пользователь существует в SQL, я хочу перенаправить его на главную страницу.

Однако, электронная почта и пароль уже существовали на SQL сервере, где я вызвал хранимую процедуру в Django rest framework.

Всего я просто хочу передать ввод пользователя вместо 'demouser@demo.com' и 'NewUser@1' в хранимую процедуру. Сейчас у меня есть жестко закодированные значения email и пароля, которые я предполагаю получить из POST запроса. Как я могу передать пост запрос в хранимую процедуру.

views.py

@api_view(['GET', 'POST']) 
def CheckUserStatusView(request):
    
    if request.method == 'GET':
            users = Tblusers.objects.all()
            serializer = CheckUserStatusSerializers(users, many=True)
            return Response(serializer.data)
                         

    elif request.method == 'POST':

            cursor = connection.cursor()
            cursor.execute('EXEC [dbo].[sp_CheckOneQUserStatus]   @EmailId=%s, @Password=%s', ('demouser@demo.com', 'NewUser@1'))
            result_set = cursor.fetchall()
            for row in result_set:
              row[2]

            if request.data.get('EmailId') == row[2]:
              serializer = CheckUserStatusSerializers(data=request.data)
              if serializer.is_valid():
                serializer.save()

              return HttpResponseRedirect(redirect_to='https://127.0.0.1:4200/#/dashboard')
            # return Response(status=status.HTTP_308_PERMANENT_REDIRECT)
            return Response(status=status.HTTP_201_CREATED)

serializers.py

   class CheckUserStatusSerializers(serializers.ModelSerializer): 
        class Meta:
          model = Tblusers
          fields ='__all__'

models.py

     class Tblusers(models.Model):
       UserID = models.AutoField(db_column='UserID', primary_key=True)  
       FullName = models.CharField(db_column='FullName', max_length=255)  
       Emailid= models.CharField(db_column='AccentureID', max_length=255)  
       Password = models.CharField(db_column='Password', max_length=200) 

Вы можете получить его из объекта запроса следующим образом

elif request.method == 'POST':
        email = request.POST.get('email')
        password = request.POST.get('password')
        cursor = connection.cursor()
        cursor.execute('EXEC [dbo].[sp_CheckOneQUserStatus]   @EmailId=%s, @Password=%s', (email, password))
            result_set = cursor.fetchall()

и я предлагаю попробовать использовать Django ORM это безопасно и не храните сырые пароли пользователей в таблице, попробуйте хэшировать их и хранить. Это хорошая практика.

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