Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where can a save confirmation page be hooked into the Django admin? (similar to delete confirmation)

Tags:

python

django

I want to emulate the delete confirmation page behavior before saving certain models in the admin. In my case if I change one object, certain others should be deleted as they depend upon the object's now out-of-date state.

I understand where to implement the actual cascaded updates (inside the parent model's save method), but I don't see a quick way to ask the user for confirmation (and then rollback if they decide not to save). I suppose I could implement some weird confirmation logic directly inside the save method (sort of a two phase save) but that seems...ugly.

Any thoughts, even general pointers into the django codebase?

Thanks!

like image 652
Jacob Rigby Avatar asked Sep 22 '08 11:09

Jacob Rigby


2 Answers

You could overload the get_form method of your model admin and add an extra checkbox to the generated form that has to be ticket. Alternatively you can override change_view and intercept the request.

like image 192
Armin Ronacher Avatar answered Sep 20 '22 11:09

Armin Ronacher


I'm by no means a Django expert, so this answer might misguide you.

Start looking somewhere around django.contrib.admin.options.ModelAdmin, especially render_change_form and response_change. I guess you would need to subclass ModelAdmin for your model and provide required behavior around those methods.

like image 37
Tomo Avatar answered Sep 21 '22 11:09

Tomo