Django REST Ошибка входа. Я не знаю что делать - PullRequest
0 голосов
/ 20 января 2020

Ну, я пытаюсь войти с помощью вызова API. Я получил модель под названием Пользователь. Я хочу сделать логин из этой модели, используя адрес электронной почты и пароль. Это моя модель:

class User(models.Model):

name = models.CharField(max_length=30, null=False, blank=False)
surnames = models.CharField(max_length=30, null=False, blank=False)
email = models.EmailField(max_length=60)
password = models.CharField(max_length=100, null=False, blank=False)
country = CountryField()
phonenumber = PhoneNumberField()
postalCode = models.CharField(max_length=5)

def __str__(self):
    return self.email 

У меня есть этот логин для вызова API Пользователь:

class UserLogin(APIView):

permission_classes = []

def post(self, request, *args, **kwargs):
    user = authenticate(email=request.data.get('email'), password=request.data.get('password'))
    if user is not None and user.is_active:
        login(request, user.email)
        return render(request, 'core/core_index.html')
    else:
        return HttpResponse('Error')

С этим бэкэндом для аутентификации:

from django.contrib.auth.models import User
from apps.core.models import User as UserAPI

class MyBackEnd(object):
def authenticate(self, request, email, password):
    """
    :param username: Username of the user
    :param password: Password of the user
    :return:
    """
    #check is user is present in User DB.
    existing_user = None
    try:
        existing_user = User.objects.get(email=email)
        return existing_user
    except Exception as e:
        #Checking the user UserAPI Custom DB.
        user_data = UserAPI.objects.get(email=email)
        if email == user_data.email:
            user =  User.objects.create_user(username=user_data.name ,email=email,password=password)
            user.save()
            return User.objects.get(email=email)
        else:
            return None

def get_user(self, user_id):

    try:
        return User.objects.get(pk=user_id)
    except User.DoesNotExist:
        return None

Я получил AUTHENTICATION_BACKENDS = ['apps.core.api.backends.MyBackEnd'] установлено на settings.py.

Я много чего перепробовал и все с ошибками, не знаю, что делать, если у кого-то есть решение, пожалуйста.

...