it-roy-ru.com

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

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

delete from table_name where id = 1;

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

197
user426795

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

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

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

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

instance = SomeModel.objects.get(id=id)
instance.delete()
409
Wolph
MyModel.objects.get(pk=1).delete()

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

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

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

DELETE FROM my_models where id=1
13
Milad Kh

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

4
VicX

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

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

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

Wishlist.objects.all().delete()
1
lilhamad