我有以下型號:如何覆蓋模型現場驗證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