如何在Django模型中删除记录?
我想删除一个特定的记录,比如:
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()