Django REST Framework-ModelSerializer中的其他字段

问题描述 投票:0回答:1

在我的ModelSerializer中,我想添加必填字段re_password

我想在创建用户模型时使用它来检查re_password是否等于password字段。

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        re_password = serializers.CharField(allow_blank=False, write_only=True)
        fields = ('email','password')

    def validate_password(self, password):
        password, re_password = itemgetter('password', 're_password')(self.initial_data)

        if not password == re_password:
            raise serializers.ValidationError('Passwords must be the same.')

我的问题是,当我向字段添加re_password时出现错误:

Field name `re_password` is not valid for model `User`.

(在这种情况下很明显)

但是如果我不这样做,序列化程序将看不到我的其他字段。

我的目标是,在POST请求中没有re_password字段时出现以下错误:

"re_password": [
    "This field is required."
]

我知道我可以编写代码来检查它,但是也许序列化程序可以做到这一点?

python django django-rest-framework django-serializer
1个回答
0
投票
class UserSerializer(serializers.ModelSerializer):
    re_password = serializers.CharField(write_only=True)
    class Meta:
        model = User
        fields = ['email','password', 're_password']
© www.soinside.com 2019 - 2024. All rights reserved.