我有一个带整数字段的序列化程序
foo = serializers.IntegerField()
我希望该字段是可选的。我觉得很明显
foo = serializers.IntegerField(required=False)
应该可以工作,但事实并非如此,我收到错误消息:
{"error":{"foo":["A valid integer is required."]
我虽然说我不需要。我还尝试添加默认值
serializers.IntegerField(required=False, default=42)
我错过了什么吗?这甚至可能吗?
答案 0 :(得分:0)
使用'required = False'
如果在此期间未提供字段,通常会引发错误 反序列化。 将此设置为False还允许使用对象属性或字典键 序列化实例时从输出中省略。
你应该尝试设置:'null = True'
通常,如果将None传递给序列化程序字段,则会引发错误。如果将None视为有效值,请将此关键字参数设置为True。
默认为False
进一步阅读DRF docs