2
我需要知道刪除模型實例的最佳方法。Django模型刪除:實例vs查詢集刪除
實例刪除例如:
myModel = MyModel.objects.get(id=1)
myModel.delete()
查詢集刪除例如:
MyModel.objects.filter(id=1).delete()
什麼是VS 查詢集刪除技術例如之間的區別是什麼? 使用查詢集而不是實例刪除是否有任何副作用?反之亦然?
P.S.如果你認爲你的答案是特定於版本的,假設我要求Django> = 1.6
。
它是否對「子級」表上的「級聯」刪除有任何影響;即與模型相關的其他表中的行是否被刪除? –
@JosvicZammit,是的。根據[文檔](https://docs.djangoproject.com/en/1.6/topics/db/queries/#topics-db-queries-delete):當Django刪除一個對象時,默認情況下它會模擬SQL約束ON DELETE CASCADE - 換句話說,任何有外鍵指向待刪除對象的對象都將被刪除。 – falsetru
@JosvicZammit,你可以使用'on_delete'字段屬性來定製它。見['ForeignKey.on_delete'](https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.on_delete) – falsetru