如何在Django中排除字段?

问题描述 投票:0回答:2

您好,我想做类似的事情:

Model.objects.all().values().exclude('id')

其中结果被转换成字典,但不包括字段'id'。我知道我可以列出所有要带入字典的字段,但是我的模型有将近50个字段。在Django中有可能吗?

我已经尝试了以下方法,但是不起作用:

Model.objects.all().defer('id').values()

更新(仍然不起作用):

>>> University.objects.all().defer('state')[:5].values()
<QuerySet [{'id': 79, 'name': 'University of Alaska', 'email': 'alaska.edu', 'state': 'AK', 'userCount': 0, 'partyCount': 0}, {'id': 80, 'name': 'Alaska Christian College', 'email': 'alaskacc.edu', 'state': 'AK', 'userCount': 0, 'partyCount': 0}, {'id': 81, 'name': 'National Park Community College', 'email': 'npcc.edu', 'state': 'AK', 'userCount': 0, 'partyCount': 0}, {'id': 82, 'name': 'University of Alaska Fairbanks', 'email': 'uaf.edu', 'state': 'AK', 'userCount': 0, 'partyCount': 0}, {'id': 83, 'name': 'University of Arkansas – Fort Smith', 'email': 'uafs.edu', 'state': 'AK', 'userCount': 0, 'partyCount': 0}]>
>>> University.objects.defer('state')[:5].values()
<QuerySet [{'id': 79, 'name': 'University of Alaska', 'email': 'alaska.edu', 'state': 'AK', 'userCount': 0, 'partyCount': 0}, {'id': 80, 'name': 'Alaska Christian College', 'email': 'alaskacc.edu', 'state': 'AK', 'userCount': 0, 'partyCount': 0}, {'id': 81, 'name': 'National Park Community College', 'email': 'npcc.edu', 'state': 'AK', 'userCount': 0, 'partyCount': 0}, {'id': 82, 'name': 'University of Alaska Fairbanks', 'email': 'uaf.edu', 'state': 'AK', 'userCount': 0, 'partyCount': 0}, {'id': 83, 'name': 'University of Arkansas – Fort Smith', 'email': 'uafs.edu', 'state': 'AK', 'userCount': 0, 'partyCount': 0}]>
django django-models django-rest-framework
2个回答
0
投票

只需使用此:


0
投票

尝试用Model.objects.defer('id').values()代替Model.objects.all().defer('id').values(),但您的代码应该可以工作

© www.soinside.com 2019 - 2024. All rights reserved.