我想删除
Result = Model.objects.filter(condition - satisfied... etc.)
然后我遍历查询集中的每个对象,并在我查看代码时将其删除:
For a in Results:
### code ###
Results.exclude(id=a.id)
无论我如何排除,结果对象都不会改变。有没有办法'#pop; pop"当我遍历查询集时,它们是什么?
答案 0 :(得分:4)
以这种方式更改代码:
For a in Results:
### code ###
Results = Results.exclude(id=a.id)
因为queryset.exclude()返回一个新的查询集,而不更改现有的。
答案 1 :(得分:0)
但是您会为每个循环执行数据库查询,尽管您每次循环都调用.exclude()
如果只想为每个循环删除对象,则可以使用:
new_list = list(results)
for a in results:
### code ###
new_list.remove(a)