NickITDir
@NickITDir
Начинающий разработчик

Почему не сохраняется пароль в БД?

Всем привет!

имеются сериализаторы

class CustomUserSerializer(serializers.ModelSerializer):
    """Serializer for User"""

    is_subscribed = serializers.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",
        )

class CustomCreateUserSerializer(serializers.ModelSerializer):
    """Serializer for create User"""

    def validate_username(self, value):
        if User.objects.filter(username=value).exists():
            raise serializers.ValidationError(f"{self.fields['username'].label} уже существует.")
        return value

    def validate_email(self, value):
        if User.objects.filter(email=value).exists():
            raise serializers.ValidationError(f"{self.fields['email'].label} уже существует.")
        return value

    class Meta:
        model = User
        fields = (
            "email",
            "id",
            "username",
            "first_name",
            "last_name",
            "password",
        )
        extra_kwargs = {"password": {"write_only": True}}

    def create(self, validated_data):
        try:
            validated_data['password'] = make_password(validated_data.get('password'))
            logger.info(f"Creating user with data: {validated_data}")
            return User.objects.create(**validated_data)
        except Exception as e:
            logger.exception("Error creating user:")
            raise


При создании пользователя , пользователь создается без пароля, несмотря на то что в запросе он есть, так же он может создаться без пароля в принципе. Уже всю голову изломал, помогите решить проблему
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Ты же сам в прошлом вопросе устанавливал пароль отдельным методом set_password, а теперь вдруг перестал и зачем-то начал дергать низкий уровень работы с ним. Это не считая, что с юзера лучше создавать через менеджер objects.create_user
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы