【问题标题】:Allow empty list in serializers.ListField在 serializers.ListField 中允许空列表
【发布时间】:2016-02-20 19:15:23
【问题描述】:

我正在使用 Django REST framework 3.3 并尝试使用框架中包含的提供的 serializers.ListField 类来序列化一个可能为空的列表。我当前对该字段的实例化如下所示

 countrypreferences = serializers.ListField(child=serializers.IntegerField(),
                                            source='country_preference_ids',
                                            allow_null=True)

在测试 API 时,如果我让字段为空列表,我似乎总是得到 400 响应。这种功能似乎很常见,但我找不到允许空列表的方法。谢谢!

【问题讨论】:

    标签: django rest django-rest-framework


    【解决方案1】:

    你应该设置:

    child=serializers.IntegerField(required=False)
    

    【讨论】:

      【解决方案2】:

      除此之外,您还可以为序列化程序中的 ListField 提供默认值

      field = serializers.ListField(default = [])
      

      如果你发送 None 或没有值,这会将字段设置为空列表。

      【讨论】:

        【解决方案3】:

        我宁愿使用

        field = serializers.ListField(child=serializers.CharField(), allow_empty=True)
        

        【讨论】:

          猜你喜欢
          • 2016-03-15
          • 2013-12-07
          • 1970-01-01
          • 2011-07-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-01
          • 2012-06-20
          相关资源
          最近更新 更多