Django - разные методы сохранения для действий пользователя и действий администратора

У меня есть несколько элементов, связанных с пользователями.

Когда добавляется каждый элемент, временная метка создается через наследование BaseModel на поле auto_now.

По ошибке, когда я добавил новое поле и заполнил его, я обновил временные метки.

Я разрешил временные метки с помощью некоторых пользовательских миграций и методов копирования данных в django.

Интересно, есть ли возможность переопределить метод сохранения в админке, чтобы он делал только update_fields (другими словами, чтобы не обновлять update_at timestamp), а для действий пользователя я хочу сохранить оригинальный метод сохранения django, который бы обновлял временную метку.

Итак, возможно ли иметь два разных метода сохранения?

Я знаю, что я могу переопределить метод сохранения - но я не знаю, могу ли я иметь два метода сохранения одновременно.

ModelAdmin.save_model() может сделать это для вас. Ознакомьтесь с docs. В своем файле администратора переопределите функцию save_model

class ObjectAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        obj.save(update_fields = ['fields', 'to', 'save'])

Посмотрев на django github, super of save_model делает не больше, чем вызывает obj.save(), поэтому я не думаю, что вам нужно или хочется вызывать super() в этом случае.

Вернуться на верх