django: обработчик для встроенного сохранения администратора - PullRequest
0 голосов
/ 06 декабря 2011

Когда пользователь нажимает кнопку «Сохранить» на странице модели моего сайта django, я хочу что-то сделать со всеми моделями, которые должны быть обновлены, все сразу. Если я переопределяю save_model, он вызывается один раз для каждого объекта, но я хочу, чтобы одна функция вызывалась для всех обновляемых объектов. Я преодолел save_formset, но это не сработало:

class ShadingAdmin(admin.ModelAdmin):
    list_display = ('foo', 'bar', 'baz')
    list_editable = ('bar', 'baz')
    list_display_links = ('foo',)
    def save_formset(self, request, form, formset, change):
        print "FOO"

admin.site.register(Shading, ShadingAdmin)

"FOO" никогда не печатается.

Я использую Django 1.2.

1 Ответ

1 голос
/ 06 декабря 2011

formset.save () возвращает список всех объектов из набора форм. Вы можете вызвать его с помощью commit = False , и изменения будут только проверены, но не сохранены в БД.

save_formset () вызывается только администратором (вы можете выполнить grep в источнике django).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...