加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:13:19 所属栏目:Python 来源:网络整理
导读:假设我定义了一个模型对象’Person’,它有一个名为’Name’的字段.我有一份人员名单: l = ['Bob','Dave','Jane'] 我想返回所有Person记录的列表,其中第一个名称不在l中定义的名称列表中. 这种方式最Python的方式是什么? 编辑:在考虑之后,我真正想要做的是
假设我定义了一个模型对象’Person’,它有一个名为’Name’的字段.我有一份人员名单:

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

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

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

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

解决方法

重命名l以提高可读性:

names = ['Bob','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才能确认).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读