2008-09-22 4 views
7

Я хочу эмулировать поведение страницы подтверждения удаления до сохранения определенных моделей в админе. В моем случае, если я изменяю один объект, некоторые другие должны быть удалены, поскольку они зависят от состояния устаревших объекта.Где можно сохранить страницу подтверждения сохранения в администраторе Django? (аналогично подтверждению удаления)

Я понимаю, где осуществить фактическое каскадом обновления (внутри родительскую модель Сохраним метод), но я не вижу быстрый способ задать пользователю для подтверждения (а затем откат, если они решили не сохранить). Я предполагаю, что могу реализовать некоторую странную логику подтверждения непосредственно внутри метода сохранения (вроде двухфазного сохранения), но это кажется ... уродливым.

Любые мысли, даже общие указатели на кодовую базу джанго?

Спасибо!

+0

Привет, я собирался опубликовать тот же вопрос. Удалось ли вам справиться с этой проблемой? – 2009-03-31 15:22:50

+0

Нет, я так и не понял этого. В моем случае это была не очень обычная операция, поэтому я просто набросился. – 2009-04-01 03:16:50

ответ

1

Я отнюдь не эксперт по Django, поэтому этот ответ может ввести вас в заблуждение.

Начните искать где-то около django.contrib.admin.options.ModelAdmin, особенно render_change_form и response_change. Думаю, вам понадобится подкласс ModelAdmin для вашей модели и обеспечить требуемое поведение в отношении этих методов.

2

Вы можете перегрузить метод get_form вашего администратора модели и добавить дополнительный флажок к сгенерированной форме, которая должна быть билетом. В качестве альтернативы вы можете переопределить change_view и перехватить запрос.

+0

Вот как мы это делаем, но я мог видеть, используя javascript, чтобы показать, что экран подтверждения намного проще реализовать. – Gromer 2010-12-20 18:37:08

0

Вы считали переопределением административных шаблонов для рассматриваемых моделей? Этот link обеспечивает отличный обзор процесса. В этой конкретной ситуации более тонкий уровень контроля может быть наилучшим способом достижения желаемого результата.

Смежные вопросы