【问题标题】: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())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-16
      • 2016-10-04
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      相关资源
      最近更新 更多