Подтвердить что ты не робот

TypeError: login() принимает 1 позиционный аргумент, но 2 даны

Я написал логин с использованием buid в auth, django auth.login() дает выше ошибку мой код с кодом ошибки o 500

from rest_framework.response import Response
from rest_framework import status
from rest_framework.decorators import api_view
from django.contrib.auth.models import User
from django.contrib.auth import authenticate,logout,login


@api_view(['POST'])
def register(request):
    user=User.objects.create_user(username=request.POST['username'],email=request.POST['email'],password=request.POST['password'])
    return Response({'ok':'True'},status=status.HTTP_201_CREATED)

@api_view(['POST'])
def login(request):
    user=authenticate(
        username=request.POST['username'],
        password=request.POST['password']
    )
    if user is not None:
        login(request,user)
        return Response({'ok':'True'},status=status.HTTP_200_OK)
    else:
        return Response({'ok':'False'},status=status.HTTP_401_UNAUTHORIZED)
4b9b3361

Ответ 1

В вашем представлении есть то же имя, что и функция входа auth, поэтому он скрывает его. Измените имя представления или импортируйте функцию под другим именем, например from django.contrib.auth import login as auth_login.

Ответ 2

У вас есть функция def login и библиотека импорта с тем же именем.

Вам нужно поменять один из них.

Пример:

- def user_login  // import login as Login_process