如何使用值列表过滤 Django 查询?

新手上路,请多包涵

我确信这是一个微不足道的操作,但我无法弄清楚它是如何完成的。

必须有比这更聪明的东西:

 ids = [1, 3, 6, 7, 9]

for id in ids:
    MyModel.objects.filter(pk=id)

我希望在一个查询中将它们全部包含在一个查询中,例如:

 MyModel.objects.filter(pk=[1, 3, 6, 7, 9])

如何使用值列表过滤 Django 查询?

原文由 ajwood 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 256
2 个回答

来自 Django 文档

 Blog.objects.filter(pk__in=[1, 4, 7])

原文由 charlax 发布,翻译遵循 CC BY-SA 4.0 许可协议

当您有项目列表并且想要检查列表中的可能值时,您不能使用 =

sql 查询将类似于 SELECT * FROM mytable WHERE ids=[1, 3, 6, 7, 9] 这是不正确的。您必须为此使用 in 运算符,因此您的查询将类似于 SELECT * FROM mytable WHERE ids in (1, 3, 6, 7, 9) Django 提供 __in 运算符—

原文由 Nilesh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题