DRF - отсутствие JWT при создании экземпляра пользователя

У меня проблемы с jwt. Когда я создаю экземпляр пользователя, jwt отсутствует. Когда я пытаюсь получить jwt с зарегистрированными учетными данными, я получаю информацию о том, что предоставленные учетные данные не верны. Все работает нормально, когда я создаю суперпользователя через cmd.

сериализаторы:

from rest_framework import serializers
from django.contrib.auth.models import User
from rest_framework import serializers

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        write_only_fields = "password"
        read_only_fields = ('id',)
        fields = ["email", "password", "first_name", "last_name"]
        for field in fields:
            extra_kwargs = {field: {'required': True,'allow_blank': False}}

    def create(self, validated_data):
        validated_data["username"] = f'{validated_data["first_name"]}_{validated_data["last_name"]}_{User.objects.count()}'
        return User.objects.create(**validated_data)

сигналы:

from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth.models import User
from rest_framework.authtoken.models import Token

@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
    if created:
        Token.objects.create(user=instance)

просмотров

class CreateUserView(CreateAPIView, GenericViewSet):
    model = User
    permission_classes = [
        permissions.AllowAny
    ]
    serializer_class = UserSerializer
    response = {}

    def create(self, request):
        validation_selializer = UserRegistrationSerializer(data=request.data)
        if validation_selializer.is_valid():
            final_selializer = self.get_serializer(data=validation_selializer.data)
            if final_selializer.is_valid():
                self.response = {
                "info":{
                    "status":"created",
                    "email":validation_selializer.data["email"]
                    }
                }
                return Response(self.response, status=status.HTTP_200_OK)
        self.response = validation_selializer.errors
        return Response(self.response, status=status.HTTP_400_BAD_REQUEST)
Вернуться на верх