【问题标题】:Django: control the output to not include null fieldsDjango:控制输出不包含空字段
【发布时间】:2013-12-17 02:56:43
【问题描述】:

我有一个包含可为空列的数据库表我创建了一个 Django 模型和视图以将所有对象作为 Json 返回。

有没有办法控制返回的输出,例如,如果我的模型有国家、城市、地址和电话号码,那么如果所有值都不为空,则输出应该是: output = serializers.serialize('json', objects_list, fields=('country','city','address','phone')) 但假设一条记录缺少一个城市,输出应如下所示:output = serializers.serialize('json', objects_list, fields=('country','address','phone'))

如何为每个字段获得此结果(如果为 null,则从输出中省略)

【问题讨论】:

    标签: django json serialization


    【解决方案1】:

    你可以试试subclassing a serializer,类似这样的(未经测试的)

    class NullToEmptySerializer(serializers.Serializer):
    
      def __init__(self, *args, **kwargs):
    
        # Instantiate the superclass normally
        super(DynamicFieldsModelSerializer, self).__init__(*args, **kwargs)
    
        # Drop any fields that are null.
        for field in self.fields:
           if field.value is null            
               self.fields.pop(field)
    

    【讨论】:

      猜你喜欢
      • 2018-09-17
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 2010-11-19
      • 2012-07-24
      相关资源
      最近更新 更多