我正在使用Django 1.9,现在尝试覆盖 save
方法行为 . 问题是,当我执行 instance.some_field = some_value
时, self
对象已经被修改,而我需要知道这是 some_field
的原始值 . 要做到这一点,唯一的出路似乎是通过 self
的pk从数据库中获取对象 .
所以我想知道什么是GENERIC语法 - 如果有's any - to fetch instance from the database? By saying GENERIC, I imply that I don' t想要显式键入模型名称(如 MYMODEL.objects.get(...)
),而是让Django根据目标实例的模型找出正确的模型 .
为了使问题更清楚,让我用伪代码说明我的目标:
def save_extented(self, *args, **kwargs):
original_object = (self model).objects.get(pk = self.pk)
可能吗 ?或者也许我不需要这个,并且有一些聪明的Django hack来获取具有回滚字段值的实例?
1 回答
您可以使用django-dirtyfields和
pre_save
信号: