Djano的only()仍然选择每个现有的字段

时间:2017-07-14 11:22:57

标签: django

我有一个由多个字段组成的Django模型。我只想选一个。

我只使用(),因为根据文档,它应该只返回woodAsked字段。然而,返回的查询集仍将包含Painting模型中的每个字段。

 >>> a = Painting.objects.only('woodAsked')
 >>> serializers.serialize("json",a)[1:200]
'{"model": "binaryQuestionApp.painting", "pk": 3, "fields": {"name": "Getty00052501.jpg", "objectNumber": "00052501.jpg", "collection": "Getty", "title": "pretty after al", "woodAsked": 0, "woodYes": '

如何选择'woodAsked'字段?

2 个答案:

答案 0 :(得分:2)

您正在寻找valuesvalues_list

 a = Painting.objects.values('woodAsked')
 a = Painting.objects.values_list('woodAsked', flat=True)

只有推迟其他字段,使其不会在初始查询中返回 - 但仍然存在

答案 1 :(得分:1)

您可以使用valuesvalues_list

OR

如果您只想序列化字段子集,可以为序列化器指定字段参数,

data = serializers.serialize('json', a, fields=('woodAsked'))