我有以下型号:如何覆盖模型现场验证Django的REST框架ModelSerializer
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')
如果USERPROFILE模型已经有一个移动电话号码XX44,如果我尝试序列使用UserProfileSerializer与json {'mobileNumber':XX44,'authKey':u'ggsdsagldaslhdkjashdjkashdjkahsdkjah'}我收到以下错误:
{'mobileNumber': [u'User profile with this MobileNumber already exists.']}
因为模型验证正在为序列化程序字段运行。
如何停止执行mobileNumber的模型字段验证。我已经在串行器中尝试了validate和validate_mobileNumber方法,但他们仍在执行模型验证。
你正在试图序列数据{“移动电话号码”:XX44 .....}现在用户配置模式的一些随机数据或数据?因为如果它是随机未经验证的数据,那么你不应该使用模型串行器来序列化它,只需使用正常的串行器。 –
尝试从UserProfile模型中删除'primary_key = True'。 – CuriousGeorge