Серийный преобразователь DRF не возвращает значение с помощью дополнительных_кварков write_only

Renato N_ спросил: 03 февраля 2018 в 01:19 в: django

Я практично копирую код примера из документации, но поле пароля с "extra_kwargs = {'password': {'write_only': True}}" не возвращается как проверенные данные.

это код:

class UserProfileSerializer(serializers.ModelSerializer):class Meta:
    model = models.UserProfile
    fields = ('email', 'first_name', 'last_name', 'birthday', 'gender', 'telephone', 'password')
    extra_kwargs = {'password': {'write_only': True}}def create(self, validated_data):
    user = models.UserProfile(
        email=validated_data['email'],
        first_name=validated_data['first_name'],
        last_name=validated_data['last_name'],
        birthday=validated_data['birthday'],
        gender=validated_data['gender'],
        telephone=validated_data['telephone']
    )    user.set_password(validated_data['password'])
    user.save()    return user

Посмотрите на локальные переменные. "пароль" передается функции инициализации, но не возвращается как validated_data ​​p>

self:

UserProfileSerializer(data={'email': 'magalhaes@magalhaes.com', 'first_name': 'eduardo', 'last_name': 'magal', 'birthday': None, 'gender': None, 'telephone': '123465', **'password': 123456**}):
    email = EmailField(max_length=255, validators=[<UniqueValidator(queryset=UserProfile.objects.all())>])
    first_name = CharField(max_length=64)
    last_name = CharField(max_length=64)
    birthday = DateField(allow_null=True, required=False)
    gender = ChoiceField(allow_null=True, choices=(('M', 'Male'), ('F', 'Female'), ('O', 'Outro')), required=False)
    telephone = CharField(allow_null=True, max_length=50, required=False)
    password = CharField(max_length=128, write_only=True)

validated_data:

{'birthday': None,
 'email': 'magalhaes@magalhaes.com',
 'first_name': 'eduardo',
 'gender': None,
 'last_name': 'magal',
 'telephone': '123465'}  **No password...**

Спасибо заранее!


0 ответов