Django ORM:按对象列表过滤

Mik*_*ike 15 django orm filter

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

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

我需要使用Log.objects.filter()来获取USERS列表中用户=的所有日志

Dan*_*man 48

使用__in查找:

Log.objects.filter(user__in=User.objects.filter(groups__name='accountexec'))
Run Code Online (Sandbox Code Playgroud)

  • 实际上,只是"Log.objects.filter(user__in = User.objects.filter(groups__name ='accountexec'))".Django会将其转换为单个查询+子查询. (5认同)
  • 根据詹姆斯的建议,自由改进建议的查询,希望没关系. (2认同)