簡體   English   中英

Django REST Framework - ModelSerializer 中的附加字段

[英]Django REST Framework - Additional field in ModelSerializer

在我的 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."
]

我知道我可以編寫代碼來檢查它,但也許有一種方法可以讓序列化程序做到這一點?

required是默認的True allow_blank是默認的False CharField

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM