Django:控制输出不包括空字段

时间:2013-12-01 09:28:29

标签: django json serialization

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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)