gpt4 book ai didi

django - 在 Django REST 中存储 BooleanField() 和 IntegerField() 的默认值

转载 作者:行者123 更新时间:2023-12-04 19:03:18 25 4
gpt4 key购买 nike

我知道根据文档,以下字段不需要 allow_blank=Trueallow_null=True

BooleanField()
IntegerField()

我需要允许客户端不指定 g 或 d(如下所示)并将该值存储在数据库中为 None .
g = serializers.BooleanField()
d = serializers.IntegerField()

有任何想法吗 ?

最佳答案

处理空字段、空白字段和​​空字段的不同选项(必然)有点微妙,所以它有时会绊倒人们也就不足为奇了。

I know as per the documentation the following fields do not take allow_blank=True and allow_null=True



这是不正确的:
  • IntegerField(allow_null=True)已验证。
  • 如果您想允许 bool 字段的空输入,您需要使用 NullBooleanField()类(class)。

  • 你是对的,他们都没有接受 allow_blank ,因为在任何一种情况下,空字符串都不是有效值。

    I need to allow the client to not specify g or d (as per below) and to store the value in the DB as None.



    您可以使用 IntegerField(default=None)NullBooleanField(default=None) .

    在这种情况下,当省略这些值时,它们将被包含为 Noneserializer.validated_data .您需要确保使用 null=True/ NullBooleanField在模型领域。

    IntegerField(required=False)NullBooleanField(required=False) .

    在这种情况下,当省略这些值时,它们将不会包含在 serializer.validated_data 中。 ,将使用模型字段默认值。您需要确保使用 default=Nonenull=True/ NullBooleanField在模型领域。

    请注意,使用可浏览 API 时存在一个错误,即在 HTML 输入中清空字段 did not get the default values set .这在 the upcoming 3.1.4 release 中得到解决.
    initial Edwin 的回答中建议的参数也很有用,但用于设置初始呈现在 HTML 表单字段中的值。

    关于django - 在 Django REST 中存储 BooleanField() 和 IntegerField() 的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31399567/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com