我正在使用django_extensions TimeStampedModel,它提供modified
字段,通过pre_save
事件设置自己。这很好,除了我正在转换旧架构并希望保留原始modified
日期戳。如何使用其他值进行monkeypatch,避免,取消或替换pre_save'd修改?
答案 0 :(得分:1)
最后,我只是做了一个结束:
from django.db import connection
cursor = connection.cursor()
cursor.execute("update %s set modified='%s' where id=%s" % (
my_model._meta.db_table, desired_modified_date, my_model.id))
答案 1 :(得分:0)
你做不到。不是你要问的意思。
您可以创建假字段并将其填充到clean()
。
Class MyModel(models.Model):
def clean(self):
self._modified = self.modified
...
@receiver(pre_save, sender=MyModel)
def receiver_(self, *args, **kwargs):
self.modified = self._modified
因此,您需要备份字段值并稍后将其恢复。 备注:确保您的应用程序以后加载。