【发布时间】:2019-08-24 00:53:47
【问题描述】:
我需要将模型序列化为JSON。然后将此JSON 发送给一个API。
但是这个API 要求某些字段不是None。
我有这些字段的列表。在这种情况下,假设它只是['telephone'],但它可以更多。
例如:
class UserSerializer(serializers.ModelSerializer):
telephone = serializers.CharField(source='userprofile.telephone')
class Meta:
model = User
fields = ['first_name','last_name','telephone']
序列化:
>>> UserSerializer(user).data
>>> {'first_name':'Michael','last_name':'Jackson','telephone':None}
由于API 需要telephone 等一些字段,所以当必填字段为None 时,我希望UserSerializer 到raise ValidationError。
所以在这种情况下我无法序列化user,因为telephone 是None。
我尝试了很多方法,包括将required=True 添加到telephone,但没有任何效果。
有没有办法validate序列化数据?请注意,我说的不是deserialization。
【问题讨论】:
-
为什么你尝试使用
required=False而不是required=True? -
输入错误。当然我试过 required=True :)
标签: python django django-models django-rest-framework