Как проверить исходные данные при сохранении модели в ModelAdmin? - PullRequest
0 голосов
/ 26 апреля 2018

Я использую save_model() метод в ModelAdmin.

Я хочу сделать что-то, когда конкретное поле изменилось (то есть staus).Поэтому я хочу узнать исходные данные перед сохранением администратора, чтобы я мог проверить их в save_model.

Я знал, что в самом Model есть метод __init__ и __save__, но я хочу активировать код только в ModelAdmin.

Вот пример кода ниже

def save_model(self, request, obj, form, change):
    if obj.status != xxx (intial data?) and obj.status == 7:
        # do sth
    super(CustomAdmin, self).save_model(request, obj, form, change)

Сводка

  • Можно ли узнать исходные данные из obj после сохранения в admin?
  • Можно ли выполнить sth только при сохранении на сайте администратора?

Заранее спасибо.

1 Ответ

0 голосов
/ 03 мая 2018

Наконец-то я нашел решение!

Я могу знать все измененные данные по form.changed_data, поэтому я могу выполнять sth, когда определенное поле находится в form.changed_data.

, как это

def save_model(self, request, obj, form, change):
    if 'status' in form.changed_data:
        if obj.status != xxx (intial data?) and obj.status == 7:
        # do sth
    super(CustomAdmin, self).save_model(request, obj, form, change)

Надеюсь, это кому-нибудь поможет!

...