如何在 for 循环中排除查询集中的项目?

H C*_*H C 2 django django-models django-queryset

我想删除

results = Model.objects.filter(condition - satisfied... etc.)
Run Code Online (Sandbox Code Playgroud)

然后我遍历查询集并在我浏览代码时删除每个对象:

for a in results:

### code ###

    results.exclude(id=a.id)
Run Code Online (Sandbox Code Playgroud)

无论我如何排除,结果对象都不会改变。当我遍历查询集时,有没有办法“弹出”它们?

Ale*_*kha 6

像这样更改代码的最后一部分:

for a in results:

### code ###

    results = results.exclude(id=a.id)
Run Code Online (Sandbox Code Playgroud)

因为 queryset.exclude() 返回一个新的查询集,而不改变现有的。