【问题标题】:Write migration changes to django simple history将迁移更改写入 django 简单历史记录
【发布时间】:2018-07-19 16:29:31
【问题描述】:
django-simple-history 在instance.save() 方法上写入历史记录更改。但是当我编写更改实例数据的迁移时,更改并没有出现。
是save()的方法
Model = apps.get_model('myapp', 'MyModel')
和
MyModel
都一样吗?有没有办法将此更改写入历史记录?
【问题讨论】:
标签:
django
django-migrations
django-simple-history
【解决方案1】:
django-simple-history 在MyModel 上使用post_save 信号以保存到历史表。该信号不会在您的迁移中发送,因此您希望直接写入历史表。您必须为历史表添加一个 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())