Как обычно, просмотрите исходный код django, чтобы найти ваш ответ (он удивительно читаем с переменными, функциями, классами и файлами, названными логически).
Глядя на django/contrib/admin/templates/admin/delete_confirmation.html
(в django 1.2.5), вы увидите шаблон с 24-й строкой, содержащий:
<ul>{{ deleted_objects|unordered_list }}</ul>
Если вы измените это на
<p>{{ deleted_objects|count }} objects</p>
или
{% if 100 < deleted_objects|count %}
<p>{{ deleted_objects|count }} objects</p>
{% else %}
<ul>{{ deleted_objects|unordered_list }}</ul>
{% endif %}
будет отображаться только количество удаленных объектов (если имеется много удаленных объектов).
Вы также можете поэкспериментировать с редактированием django/contrib/admin/templates/admin/actions.py
использовать транзакцию SQL для ускорения массового удаления.См .: http://docs.djangoproject.com/en/dev/topics/db/transactions/
В основном action.py в настоящее время работает, формируя соответствующий набор запросов, вызывая delete () непосредственно из набора запросов, но не группируя его в одну транзакцию БД.Выполняя простые временные тесты на примере базы данных sqlite, я обнаружил, что удаление ~ 150 объектов без транзакций заняло 11,3 секунды с использованием qs.delete()
и 13,4 секунды с использованием for obj in qs: obj.delete()
.Используя транзакции (@transaction.commit_on_success
перед удалением функций), те же самые команды занимали всего 0,35 секунды и 0,39 секунды (примерно в 30 раз быстрее).Предоставление транзакций может временно заблокировать базу данных, что может быть неприемлемым вариантом.
Для разумного расширения администратора django (обычно вы не хотите редактировать источник напрямую, особенно если другие пользователи используют тот жефайлы или если вы когда-нибудь захотите вернуться позже или запустите другие сайты django на той же машине), см .: http://www.djangobook.com/en/1.0/chapter17/#cn35