代码之家  ›  专栏  ›  技术社区  ›  Max

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

  •  0
  • Max  · 技术社区  · 6 年前

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

    save() 方法

    Model = apps.get_model('myapp', 'MyModel') 
    

    MyModel 
    

    相同吗?有没有办法把这些变化写进历史?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ross Mechanic    6 年前

    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())