我正在更新用户时,我遇到了已经存在的电子邮件。
我怎么能用extra_kwargs
来克服email already exists
或phone already exists
问题。然后用from django.core.validators import EmailValidator
作为"email": {"validators": [EmailValidator]}
。。带回我的电子邮件字段验证
但这似乎不是真正的解决方案。 因为我们正在更新现有的模型对象。。为什么它的行为就像我们正在创造一个新的
我认为应该有定义update
或partial_update
的东西,或者我不知道是什么是否有其他解决方案
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = "id", "full_name", "gender", "phone", "email", "date_of_birth"
extra_kwargs = {
# "phone": {"validators": []},
# "email": {"validators": [EmailValidator]},
}
据我所知,默认情况下,用户django中的
email
字段不是唯一的,如果要更改数据库中的唯一字段,可以使用AbstractUser,它将自动检测序列化程序中的唯一字段,并且无法使用已存在的电子邮件保存用户然后假设,我们没有使用AbstracUser,所以我们需要在序列化程序中手动验证唯一的电子邮件。我们可以使用两种方法:
1UniqueValidator
2。手动验证电子邮件: 在我们的序列化程序中,只需添加验证电子邮件的函数
CMIIW
相关问题 更多 >
编程相关推荐