我有以下模型:
class UserProfile(models.Model):
mobileNumber = models.BigIntegerField(primary_key=True)
authKey = models.CharField(max_length=300,null=False,blank=False)
creationDateTime = models.DateTimeField(auto_now_add=True)
lastUpdateDateTime = models.DateTimeField(auto_now=True)
序列化器:
class UserProfileSerializer(serializers.ModelSerializer):
class Meta:
model = UserProfile
fields = ('mobileNumber','authKey')
如果用户个人资料模型已经具有手机号码XX44,并且如果我尝试使用带有json {'mobileNumber':XX44,'authKey':u'ggsdsagldaslhdkjashdjkashdjkahsdkjah'}的UserProfileSerializer进行序列化,则会出现以下错误:
{'mobileNumber': [u'User profile with this MobileNumber already exists.']}
因为正在为序列化器字段运行模型验证。
如何停止执行mobileNumber的模型字段验证。我曾尝试在序列化器中使用validate和validate_mobileNumber方法,但它们仍在执行模型验证。
最佳答案
消除对表的移动数量的唯一约束,因此django序列化器将根据该值进行验证。
或者
或者,
serializer=UserProfileSerializer(data=request.DATA,partial=True)
关于django - 如何在Django Rest Framework ModelSerializer中覆盖模型字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22634161/