【发布时间】:2015-01-07 04:06:17
【问题描述】:
我有以下序列化程序:
class ReqSerializer(serializers.ModelSerializer):
class Meta:
model = Earth
fields = ('area', )
还有这个模型:
class Earth(models.Model):
area = models.IntegerField(default=0)
根据 django-rest-framework Serializer fields "required" 选项是
默认设置为 True 这意味着如果我尝试验证输入中没有“区域”字段的序列化程序,
我应该得到This field is required 错误。但是is_valid() 被传递,模型使用默认area=0 创建。但是,使用这个:
extra_kwargs = {
area': {'required': True},
}
会解决问题,但为什么?什么可以改变这种行为?为什么默认“required=True” 没有效果?
更新:
我刚刚注意到,如果我从模型中删除 default=0,它将按预期工作。现在的问题是为什么在模型字段上设置默认值会取消序列化程序上的required=True。
【问题讨论】:
标签: python django-rest-framework