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

17 浏览
0 Comments

我如何使用值列表过滤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 查询?

admin 更改状态以发布 2023年5月24日
0
0 Comments

当你有一个项目列表,并且希望从列表中检查可能的值时,你不能使用 =

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 运算符。

0
0 Comments

Django文档中:

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

0