Как удалить запись в моделях Django?

Я хочу удалить определенную запись. Например,

delete from table_name where id = 1;

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

Ответ 1

Существует несколько способов:

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

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

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

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

Ответ 2

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

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

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

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

DELETE FROM my_models where id=1

Ответ 3

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

Ответ 4

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

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

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

Wishlist.objects.all().delete()