django - 如何在Django Rest Framework ModelSerializer中覆盖模型字段验证

标签 django django-models django-rest-framework django-forms django-validation

我有以下模型:

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/

相关文章:

django - Docker和Django。 django.db.utils.OperationalError:无法连接到服务器

javascript - 具有多个允许主机的 Django 和 CORS 策略

python - 比较表中的字段和 django-orm 中的计算字段

django - 我将如何在 Django 中执行此查询?

django - django 的 model 的 save() 方法如何知道数据库表中的保存位置?

python - 如何使用 Django REST Framework 在 INSERT 之前停止 SELECT

django - 如何编写自定义序列化器?

django - 如何在django rest framework gis中转换几何

django - Django 中的递归 URL 路由

javascript - Django 运行从父级导入并由子级调用的 javascript 函数