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

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

我要删除特定记录。如

delete from table_name where id = 1;

我怎么能做到这一点django model

I want to delete a particular record. Such as

delete from table_name where id = 1;

How can I do this in a django model?


回答 0

有两种方法:

要直接删除它:

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

要从实例中删除它:

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

There are a couple of ways:

To delete it directly:

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

To delete it from an instance:

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

回答 1

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

如果具有指定主键的对象不存在,这将引发异常,因为它首先会尝试检索指定的对象。

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

如果具有指定主键的对象不存在,并且不会直接产生查询,则不会引发异常

DELETE FROM my_models where id=1
MyModel.objects.get(pk=1).delete()

this will raise exception if the object with specified primary key doesn’t exist because at first it tries to retrieve the specified object.

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

this wont raise exception if the object with specified primary key doesn’t exist and it directly produces the query

DELETE FROM my_models where id=1

回答 2

如果要删除一项

wishlist = Wishlist.objects.get(id = 20)
wishlist.delete()

例如,如果要删除收藏夹中的所有项目

Wishlist.objects.all().delete()

If you want to delete one item

wishlist = Wishlist.objects.get(id = 20)
wishlist.delete()

If you want to delete all items in Wishlist for example

Wishlist.objects.all().delete()

回答 3

如果要删除一个实例,请编写代码

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

如果要删除所有实例,请编写代码

delet= Account.objects.all()
delete.delete()

if you want to delete one instance then write the code

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

if you want to delete all instance then write the code

entries= Account.objects.all()
entries.delete()

回答 4

沃尔夫提供了一个很好的答案集中代码。让我在这里粘贴官方文档,以供大家参考。

Wolph provided a good answer focused codes. Let me just paste official doc here, for people’s reference.