我有一个带有可空列的数据库表我创建了一个Django模型和视图,将所有对象作为Json返回。
有没有办法控制返回的输出,例如,如果我的模型有国家,城市,地址和电话号码,那么输出如果所有值都不为空应该是:
output = serializers.serialize('json', objects_list, fields=('country','city','address','phone'))
但是我们可以说记录丢失了一个城市而不是输出应该如下所示:output = serializers.serialize('json', objects_list, fields=('country','address','phone'))
如何为每个字段达到此结果(如果为null,则从输出中省略)
答案 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)