Django 模型删除:实例与查询集删除

Jos*_*mit 5 python django django-models

我需要知道删除模型实例的最佳方法。

实例删除示例:

myModel = MyModel.objects.get(id=1)
myModel.delete()
Run Code Online (Sandbox Code Playgroud)

查询集删除示例:

MyModel.objects.filter(id=1).delete()
Run Code Online (Sandbox Code Playgroud)

实例删除技术与查询集删除技术之间有什么区别?使用查询集而不是实例删除是否有任何副作用,反之亦然?

PS如果您认为您的答案是特定于版本的,请假设我要求 Django >= 1.6

fal*_*tru 4

实例删除涉及两个查询:一个用于选择对象。其他用于删除对象。

而Queryset删除只涉及一个查询:删除。

实例删除的副作用:myModel.pk(==myModel.id通常)None在删除后变为。