2008-09-22 14 views
7

Quiero emular el comportamiento de la página de confirmación de eliminación antes de guardar ciertos modelos en el administrador. En mi caso, si cambio un objeto, se deben eliminar otros, ya que dependen del estado obsoleto del objeto ahora .¿Dónde se puede conectar una página de confirmación de guardado en el administrador de Django? (similar a la confirmación de eliminación)

entiendo dónde poner en práctica el actual actualizaciones en cascada (dentro el modelo de matriz de guardar el método), pero no veo una forma rápida de pedir confirmación al usuario (y luego deshacer si deciden no ahorrar) Supongo que podría implementar alguna extraña lógica de confirmación directamente dentro del método de guardar (una especie de guardar en dos fases) pero que parece ... feo.

¿Alguna idea, incluso punteros generales en el código base de django?

Gracias!

+0

Hola, estaba a punto de publicar la misma pregunta. ¿Has logrado llegar a algún lado con este problema? –

+0

No, nunca pensé en esto. No fue una operación muy común en mi caso, así que acabo de hacer un castigo. –

Respuesta

1

No soy de ninguna manera un experto de Django, por lo que esta respuesta podría confundirte.

Comience a buscar en algún lugar alrededor de django.contrib.admin.options.ModelAdmin, especialmente y response_change. Supongo que necesitaría crear una subclase de ModelAdmin para su modelo y proporcionar el comportamiento requerido alrededor de esos métodos.

2

Puede sobrecargar el método get_form de su modelo de administrador y agregar una casilla adicional al formulario generado que tiene que ser un ticket. Alternativamente, puede anular change_view e interceptar la solicitud.

+0

Así es como lo hacemos, pero pude ver el uso de javascript para mostrar que una pantalla de confirmación es mucho más fácil de implementar. – Gromer

0

¿Ha considerado anular las plantillas administrativas para los modelos en cuestión? Este link proporciona una excelente visión general del proceso. En esta situación particular, tener un nivel de control más fino puede ser la mejor manera de lograr el resultado deseado.

+0

Ya he sobrecargado partes de change_form, pero este comportamiento en particular parece estar codificado en el núcleo (al menos la url de redirección posterior a la publicación). Tal vez puedo seguir la URL de confirmación de publicación y hacer algo funky. –

Cuestiones relacionadas