django-simple-history
使用instance.save()
方法编写历史记录更改。但是,当我编写用于更改实例数据的迁移时,没有出现更改。
是
的save()
方法
Model = apps.get_model('myapp', 'MyModel')
和
MyModel
是一样的吗?有没有办法将此更改写入历史记录?
答案 0 :(得分:1)
django-simple-history
在post_save
上使用MyModel
信号以保存到历史表。该信号不会在您的迁移中发送,因此您想直接写入历史表。您必须在历史记录表中包含一个history_date
字段。以下应该可以工作:
from datetime import datetime
Model = apps.get_model('myapp', 'MyModel')
HistoricalModel = apps.get_model('myapp', 'HistoricalMyModel')
instance = Model.objects.create(name='Test')
HistoricalModel.objects.create(name=instance.name, id=instance.id, history_date=datetime.now())