Hello everyone I'm new to development. There was a problem when receiving a token during authentication via Djoser. It seems that I do everything in accordance with the documentation but I do not get the necessary result
I was trying to redefine the model to change the serializer
settings
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.AllowAny',
],
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
}
DJOSER = {
'LOGIN_FIELD': 'email',
}
serializer
class CustomUserSerializer(UserSerializer):
"""Serializer for User"""
is_subscribed = SerializerMethodField()
def get_is_subscribed(self, obj):
request = self.context.get("request")
if request and not request.user.is_anonymous:
user = request.user
return Follow.objects.filter(user=user, author=obj).exists()
return False
class Meta:
model = User
fields = (
"email",
"id",
"username",
"first_name",
"last_name",
"is_subscribed",
)
model user
class User(AbstractUser):
"""The user's model."""
username = models.CharField(
max_length=MAX_LENGTH,
verbose_name="Имя пользователя",
unique=True,
db_index=True,
)
first_name = models.CharField(
max_length=MAX_LENGTH,
verbose_name="Имя")
last_name = models.CharField(
max_length=MAX_LENGTH,
verbose_name="Фамилия")
email = models.EmailField(
verbose_name="Электронная почта",
unique=True)
is_subscribed = models.BooleanField(default=False)
USERNAME_FIELD = "email"
REQUIRED_FIELDS = ["username", "first_name", "last_name"]
class Meta:
verbose_name = "Пользователь"
verbose_name_plural = "Пользователи"
ordering = ("id",)
def __str__(self):
return self.username