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

107

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

delete from table_name where id = 1;

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

  • 13
    Спасибо, что задали вопрос. Иногда RTFM занимает намного больше времени, чем поиск в Google и SO, о чем свидетельствует количество голосов «за» и количество просмотров.
  • 6
    Согласился с @Freedom_Ben, но для будущих читателей, которым все равно нравится руководство f *, это то, что вы ищете: docs.djangoproject.com/en/dev/topics/db/queries/…
Теги:
django-models

1 ответ

281

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

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

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

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

instance = SomeModel.objects.get(id=id)
instance.delete()
  • 31
    Обратите внимание, что первый не вызовет метод объекта .delete (), поэтому, если в этом методе есть код очистки, он не будет вызван. Вообще не проблема, но стоит иметь в виду.
  • 7
    @ Мэтью Шинкель: это правда. Если вы хотите использовать собственный метод удаления, вы должны вместо этого post_delete сигнал pre_delete или post_delete .
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню