Django exclude(**kwargs) 帮助

1 投票
2 回答
907 浏览
提问于 2025-04-15 21:34

我有个问题想请教你,找了半天也没找到解决办法……简单来说,我有一个叫做“环境”的模型,我把所有的环境都传给一个视图,但有些特定的环境我想排除掉。现在,我知道在查询集中有一个排除的功能,但我就是搞不清楚怎么用它来排除多个选项……比如,我试过这样做,但没成功:

kwargs = {"name": "env1", "name": "env2"}
envs = Environment.objects.exclude( kwards )

但是这样做的话,最后只会排除掉列表中最后一个“名称”的值。我现在明白为什么会这样了,但我还是无法用一个命令排除多个对象。非常感谢任何帮助!

肖恩

2 个回答

1

这段代码的意思是,从环境对象中排除掉名字是“env1”和“env2”的那些环境。简单来说,就是你想要找出所有环境,但不想要这两个特定的环境。

4

这样做的方法是:

Enviroment.objects.exclude(name="env1").exclude(name="env2")

或者

Enviroment.objects.exclude(Q(name="env1") | Q(name="env2"))

撰写回答