Удалить несколько объектов в Django - PullRequest
82 голосов
/ 04 февраля 2012

Мне нужно выбрать несколько объектов для удаления из моей базы данных в Django с помощью веб-страницы.Нет категории для выбора, поэтому я не могу удалить все из них таким образом.Должен ли я реализовать свою собственную форму удаления и обработать ее в django, или у django уже есть способ сделать это?Как это реализовано в интерфейсе администратора.

1 Ответ

156 голосов
/ 04 февраля 2012

Вы можете удалить любой QuerySet, который захотите. Например, чтобы удалить все сообщения в блоге с некоторой моделью сообщения

Post.objects.all().delete()

и удалить любое сообщение с датой будущей публикации

Post.objects.filter(pub_date__gt=datetime.now()).delete()

Однако вам нужно найти способ сузить свой QuerySet. Если вы просто хотите, чтобы представление удаляло определенный объект, посмотрите в удалить универсальное представление .

EDIT:

Извините за недоразумение. Я думаю, что ответ где-то между. Чтобы реализовать свои собственные, объедините ModelForm s и универсальные представления . В противном случае посмотрите на сторонние приложения, которые предоставляют аналогичную функциональность. В связанном вопросе рекомендация была django-filter .

...