我可以使用python列表过滤django模型吗?

假设我定义了一个模型对象’Person’,它有一个名为’Name’的字段.我有一份人员名单:

l = ['Bob','Dave','Jane']

我想返回所有Person记录的列表,其中第一个名称不在l中定义的名称列表中.

这种方式最Python的方式是什么?

编辑:在考虑之后,我真正想要做的是想出一个在Person表中不存在的l的子列表.有没有一种有效的方法呢?我可以想到几种方法,但不确定效率如何.

最佳答案 重命名l以提高可读性:

names = ['Bob','Dave','Jane']

Person.objects.[exclude][1](Name__[in][2]=names)

更新1:回答第二个问题(在“编辑”段落中):

present = Person.objects.values_list('Name', flat=True)
absent = set(names) - set(present)   
# or, if you prefer named functions to the set operator '-'
absent = set(names).difference(present) 

是的,差异的“右手边”(但不是’ – ‘)接受任何可迭代(我必须要look it up才能确认).

点赞