如何从查询集中删除过滤后的项目?

时间:2015-12-23 03:36:29

标签: django django-models django-queryset

目前,我有来自查询集过滤器的结果。

 Results = Model.objects.filter(conditional=satified..etc.)

如何从结果中删除单个结果。我认为结果是一个列表,并尝试.remove(项目),但它似乎不起作用。还有其他方法可以删除单个项目吗?

2 个答案:

答案 0 :(得分:0)

Model.objects.filter的结果是QuerySet类,而不是list

并且filter只需要从数据库到内存中的一些模型,一旦完成,对结果的任何操作都是对内存中的数据进行操作,而不是数据库,因此数据库中的数据不会改变。所以如果你想要从数据库中删除一些模型,您可以从filter的结果中找到特定模型并调用其delete方法,然后将从数据库中删除该模型。

答案 1 :(得分:0)

再次使用filter()exclude()方法查询您的查询集。 E.g

results = Model.objects.filter(conditional=satified)
results  = results.exclude(param=your_param)
# or
results  = results.filter(param=your_param)