在我的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."
]
我知道我可以编写代码来检查它,但是也许序列化程序可以做到这一点?
class UserSerializer(serializers.ModelSerializer):
re_password = serializers.CharField(write_only=True)
class Meta:
model = User
fields = ['email','password', 're_password']