Django模型删除:实例删除与查询集删除
我想知道删除一个模型实例的最佳方法。
实例删除的例子:
myModel = MyModel.objects.get(id=1)
myModel.delete()
查询集删除的例子:
MyModel.objects.filter(id=1).delete()
实例删除和查询集删除这两种方法有什么不同?使用查询集删除而不是实例删除会有什么副作用,反之亦然?
附注:如果你觉得你的回答与版本有关,请假设我是在问Django版本大于等于 1.6
的情况。
1 个回答
4
实例删除需要进行两个操作:一个是选择你要删除的对象,另一个是实际删除这个对象。
而查询集删除只需要一个操作:直接删除。
实例删除的副作用是:myModel.pk
(通常等于myModel.id
)在删除后会变成None
。