如何在Django模型中删除记录?

482 投票
10 回答
603297 浏览
提问于 2025-04-16 04:39

我想删除一个特定的记录,比如:

delete from table_name where id = 1;

我该如何在Django模型中做到这一点呢?

10 个回答

32

如果你想删除一个实例,可以写下面的代码:

entry = Account.objects.get(id=5)
entry.delete()

如果你想删除所有实例,可以写下面的代码:

entries = Account.objects.all()
entries.delete()
88
MyModel.objects.get(pk=1).delete()

如果指定的主键对应的对象不存在,这段代码会抛出一个异常,因为它首先会尝试去获取这个指定的对象。

MyModel.objects.filter(pk=1).delete()

如果指定的主键对应的对象不存在,这段代码不会抛出异常,而是直接生成查询。

DELETE FROM my_models where id=1
831

有几种方法可以做到这一点:

直接删除:

SomeModel.objects.filter(id=id).delete()

从一个实例中删除:

instance = SomeModel.objects.get(id=id)
instance.delete()

撰写回答