Django ORM:按对象列表过滤

Posted

技术标签:

【中文标题】Django ORM:按对象列表过滤【英文标题】:Django ORM: filter by a list of objects 【发布时间】:2010-11-04 22:39:20 【问题描述】:

我有以下代码将我的所有用户从多选字段放入列表中

USERS = []
for user in User.objects.filter(groups__name='accountexec'):
    USERS.append((user.id,user))

我需要使用 Log.objects.filter() 将所有带有 user= 的日志发送给 USERS 列表中的用户

【问题讨论】:

【参考方案1】:

使用__in 查找:

Log.objects.filter(user__in=User.objects.filter(groups__name='accountexec'))

【讨论】:

其实就是“Log.objects.filter(user__in=User.objects.filter(groups__name='accountexec'))”。 Django 会将其变成单个查询 + 子查询。 冒昧根据詹姆斯的建议改进了建议的查询,希望没问题。

以上是关于Django ORM:按对象列表过滤的主要内容,如果未能解决你的问题,请参考以下文章

Django ORM - 过滤相关对象

Django按模型对象列表过滤

Django ORM:按相关表过滤器的聚合排序

Django ORM按两个相关模型的最大列值过滤

Django通过多对多ORM对象中的多个标签进行过滤

Django orm总结