2013-05-31 34 views
3

是否有排除函数values()values_list中的字段的有效方法。从值()或values_list()排除字段

e.g

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

我想排除这个查询集现场duration

我知道我可以在结果中指定我想要的字段,但是如果我想要的只是一个字段而不是一个字段。就像在这种情况下,如果我有20个领域,并且如果我只希望他们中的一个不是。

感谢

回答

4

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

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

谢谢,它工作得很好。 – Azd325

2

你可以得到所有字段,然后再弹出的字段,你不想:

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

要获得字段名直接就可以使用:''Video._meta.get_all_field_names()'' – codeape

+0

@codeape这是更具可读性和直接的,谢谢。 – iMom0