Django: Как подключить кнопку сохранения для администратора модели? - PullRequest
5 голосов
/ 05 сентября 2010

У меня есть модель с полем «статус». Когда пользователь использует приложение Admin для изменения экземпляра, как я могу подключиться к нажатию кнопки «Сохранить», чтобы я мог обновить «статус» до значения, которое зависит от имени пользователя, вошедшего в систему?

Ответы [ 3 ]

13 голосов
/ 05 сентября 2010

Переопределите save_model -метод вашего modeladmin:

class ModelAdmin(admin.ModelAdmin):       
    def save_model(self, request, obj, form, change):
        user = request.user 
        instance = form.save(commit=False)
        if not change:    # new object
            instance.status = ....
        else:             # updated old object
            instance.status = ...
        instance.save()
        form.save_m2m()
        return instance
6 голосов
/ 05 сентября 2010

Используйте сигнал pre_save .Конечно, он будет вызываться при каждой операции сохранения экземпляра, не только от администратора, но и в вашей ситуации.

4 голосов
/ 05 сентября 2010

ModelAdmin.save_model () предоставляет только то, что мне нужно

...