从值()或values_list()中排除字段

时间:2013-05-31 09:58:52

标签: python django django-models django-orm

是否有一种有效的方法可以从函数values()values_list中排除字段。

e.g

Videos.objects.filter(id=1).get().values()

我想从此查询集中排除字段duration

我知道我可以在结果中指定我想要的字段但是如果我想要的只是一个字段而不是。就像在这种情况下,如果我有20个字段,如果我只想要一个字段,那么。

由于

2 个答案:

答案 0 :(得分:13)

您必须使用defer这不会在您的select查询中添加已定义的字段。

Videos.objects.filter(...).defer('duration')

答案 1 :(得分:5)

您可以先获取所有字段,然后弹出您不想要的字段:

fields = Video._meta.get_all_field_names()
fields.remove('id')
Video.object.filter(...).values(*fields)