Como de costumbre, navegue por la fuente django para encontrar su respuesta (es sorprendentemente legible con variables, funciones, clases y archivos nombrados lógicamente).
En cuanto a django/contrib/admin/templates/admin/delete_confirmation.html
(en django 1.2.5), verá una plantilla que tiene la línea 24 contiene:
<ul>{{ deleted_objects|unordered_list }}</ul>
Si cambia esta decir
<p>{{ deleted_objects|count }} objects</p>
o
{% if 100 < deleted_objects|count %}
<p>{{ deleted_objects|count }} objects</p>
{% else %}
<ul>{{ deleted_objects|unordered_list }}</ul>
{% endif %}
solo mostrará el recuento de objetos eliminados (si hay muchos objetos eliminados) .
Es posible que también desee experimentar con la edición django/contrib/admin/templates/admin/actions.py
para usar una transacción SQL para realizar la eliminación masiva más rápidamente. Ver: http://docs.djangoproject.com/en/dev/topics/db/transactions/
Básicamente, action.py funciona actualmente formando el conjunto de consultas apropiado, llamando a delete() directamente el conjunto de consultas, pero no agrupando en una sola transacción db. Haciendo pruebas simples de tiempo en una base de datos sqlite de ejemplo encontré que borrar ~ 150 objetos sin transacciones tomó 11.3 segundos usando qs.delete()
y 13.4 segundos usando for obj in qs: obj.delete()
. Usando transacciones (@transaction.commit_on_success
antes de las funciones de eliminación), los mismos comandos tomaron solo 0,35 segundos y 0,39 segundos (aproximadamente 30 veces más rápido). El uso de transacciones otorgadas puede bloquear la base de datos temporalmente, lo que puede no ser una opción aceptable.
Extender la administración de Django con sensatez (normalmente no quiere editar la fuente directamente; especialmente si otros usuarios están utilizando los mismos archivos o si puede que nunca querrá volver tarde o está ejecutando otros sitios sobre Django misma máquina) ver: http://www.djangobook.com/en/1.0/chapter17/#cn35
Esto ayuda- pero la otra gran hangup está en el django.contrib.admin.actions.py donde se hace la llamada a get_deleted_objects (línea 34 en django 1.4). Aquí, la jerarquía completa de objetos se compila para su posterior visualización en la plantilla. Aquí es donde mi código colgaba al menos. Espero que esto también ayude. – Rob