2013-08-27 5 views
2

Допустим, у нас есть объект myobj который имеет поля f1, f2. Первоначально поля устанавливаются 1 и 2 и сохранённый имеющие pk=1Как получить предыдущие данные объекта в модели django save модель

Теперь я называю это снова что-то вроде этого:

myobj.f1 = 11 
myobj.f2 = 22 
myobj.save() 

в то время как метод модели save(self, *args, **kwargs) Я знаю, мы можем передать наши собственные переменные к нему, переопределить метод, делать то, что когда-либо мы хотим.

Есть ли в любом случае, что мы можем знать предыдущие данные объекта? используя некоторые встроенные аргументы?

ответ

3

Существует нет встроенного способа получения старых данных в методе save(). Вам нужно будет выполнить запрос db. Что-то вроде этого:

class MyModel(Model): 
    ... 
    def save(self, *args, **kwargs): 
     if self.pk: 
      old_obj = MyModel.objects.get(pk=self.pk) 

     #use old_obj for something 

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