Как удалить запись в моделях Django? - PullRequest
202 голосов
/ 27 сентября 2010

Я хочу удалить конкретную запись. Такие как

delete from table_name where id = 1;

Как я могу сделать это в django model?

Ответы [ 4 ]

415 голосов
/ 27 сентября 2010

Есть несколько способов:

Чтобы удалить его напрямую:

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

Чтобы удалить его из экземпляра:

instance = SomeModel.objects.get(id=id)
instance.delete()
18 голосов
/ 26 июля 2018
MyModel.objects.get(pk=1).delete()

это вызовет исключение, если объект с указанным первичным ключом не существует, потому что сначала он пытается получить указанный объект.

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

это не вызовет исключения, если объект с указанным первичным ключом не существует, и он напрямую создает запрос

DELETE FROM my_models where id=1
4 голосов
/ 10 апреля 2018

Вольф предоставил хороший ответ сфокусированным кодам. Позвольте мне просто вставить официальный документ здесь, для справки людей.

1 голос
/ 10 марта 2019

Если вы хотите удалить один элемент

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

Если вы хотите удалить все элементы в Списке желаний, например,

Wishlist.objects.all().delete()
...