Django REST空字段

时间:2015-05-27 09:01:11

标签: django rest

有没有办法允许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

有什么想法吗?

3 个答案:

答案 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)