Я пытаюсь настроить базовый c API. Однако, когда я пытаюсь войти в систему, кажется, что произошла ошибка. Я использую django -rest-auth и пытался настроить процесс входа в систему, создав сериализатор входа в систему. Каким-то образом каждый раз, когда я пытаюсь войти в систему, возникает эта ошибка.
serializers.py
<...local imports...>
from rest_framework import serializers
from django.contrib.auth import authenticate
class ToDoSerializer(serializers.ModelSerializer):
class Meta:
model = ToDo
fields = '__all__'
extra_kwargs = {'priority': {'write_only': True}}
class CustomerSerializer(serializers.ModelSerializer):
class Meta:
model = Customer
fields = "__all__"
class LoginSerializer(serializers.ModelSerializer):
email = serializers.EmailField(write_only=True)
password = serializers.CharField(write_only=True)
class Meta:
model = Customer
fields = ['email', 'password']
def validate_credential(self, email, password):
user = None
if email and password:
user = authenticate(email=email,
password=password)
else:
raise exceptions.ValidationError('Invalid Credentials')
return user
def validate(self, attrs):
email = attrs.get('email')
password = attrs.get('password')
user = self.validate_credential(email, password)
attrs['user'] = user
return attrs
models.py
from django.db import models
from django.contrib.auth import settings
from django.contrib.auth.models import AbstractUser
# Create your models here.
class ToDo(models.Model):
text = models.CharField(max_length=120)
priority = models.BooleanField(default=False)
customer = models.ForeignKey(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='todos')
def __str__(self):
return f"{self.text} by {self.customer}"
class Customer(AbstractUser):
username = models.CharField(max_length=120, unique=True)
email = models.EmailField(unique=True)
priority = models.ForeignKey(
ToDo, on_delete=models.CASCADE, null=True, related_name='customers')
def __str__(self):
return self.email
В чем может быть ошибка и как Я разрешаю?