将迁移更改写入 django 简单历史记录

Jon*_*bop 3 django django-migrations django-simple-history

django-simple-history书写历史改变instance.save()方法。但是当我写迁移更改实例数据时,更改没有出现。

save()的方法

Model = apps.get_model('myapp', 'MyModel') 
Run Code Online (Sandbox Code Playgroud)

MyModel 
Run Code Online (Sandbox Code Playgroud)

一样吗?有没有办法将这种变化写入历史?

小智 5

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())
Run Code Online (Sandbox Code Playgroud)