有没有办法允许Django REST serilaizer中的空字段用于布尔和Int字段。
class InputAttributes(serializers.Serializer):
make = serializers.BooleanField(required=False)
speed = serializers.IntegerField(required=False)
color = serializers.CharField(required=False,allow_blank=True)
我可以将allow_blank用于CharFields,但不能用于其他人。 基于以上我得到,
A valid integer is required
有什么想法吗?
答案 0 :(得分:1)
这可能有助于您 Django REST Framework serializer field required=false
来源:
http://www.django-rest-framework.org/api-guide/fields/#booleanfield
BooleanField 布尔表示。
使用HTML编码的表单输入时,请注意省略值将始终被视为将字段设置为False,即使它指定了default = True选项也是如此。这是因为HTML复选框输入通过省略值来表示未检查状态,因此REST框架将省略视为空复选框输入。
对应于django.db.models.fields.BooleanField。
签名:BooleanField()
NullBooleanField 一个布尔表示,也接受None作为有效值。
对应于django.db.models.fields.NullBooleanField。
签名:NullBooleanField()
答案 1 :(得分:0)
顺便说一句,如果要查找此Q,是因为您实际上希望BooleanField发送/接收null
为有效值(因为您已在模型的null=True, default=None
中定义了BooleanField
),然后在序列化器中定义字段,如下所示:
myBoolField = serializers.BooleanField(allow_null=True, default=None)
我以为NullBooleanField
最初是这样做的,但事实并非如此,我不知道它实际上应该做什么。
答案 2 :(得分:-2)
color = serializers.CharField(null=True,Blank=True)