Удаление данных из БД
Для удаления информации из БД используется метод delete(). Удаление единственной записи из таблицы можно выполнить с помощью ее id. Например:
post_2 = Post.objects.get(id=2)
post_2.delete()
Здесь в первой строке в элемент post_2 загружена информация из строки таблицы базы данных с id=2, а во второй строке вызван метод, который удалил из таблицы БД эту строку.
Если не требуется получение отдельного объекта из базы данных, тогда можно удалить объект одной строкой программного кода с помощью комбинации методов filter() И delete():
Post.objects.filter(id=3).delete()
Этой командой будет удалена строка с id=3 непосредственно в базе данных, без предварительной загрузки ее содержимого в приложение.
Просмотр строки SQL-зaпpoca к базе данных
Рассмотренные здесь методы при обращении к базе данных фактически используют SQL-запросы, хотя это и скрыто от разработчика.
В Django с помощью свойства query можно получить и посмотреть текст выполняемого SQL-запроса. Например, при выполнении кода:
my_post = Post.objects.all()
print(my_post.query)
В консоли отобразится следующий SQL-запрос:
SELECT "posts_post"."id", "posts_post"."text" FROM "posts_post"
Таким образом мы можем смотреть любые запросы, которые будет выполнять Django.