保存 Django PGSeage跟踪器

save django pghistory tracker

提问人:Giorgi Kurdadze 提问时间:6/13/2023 更新时间:6/13/2023 访问量:52

问:

所以我想跟踪模型中的一些字段,因此我使用了pghistory

这是我的代码:

@pghistory.track(
    pghistory.BeforeUpdate(
        "trailer_changed",
        condition=Q(
            old__rate__df=F("new__rate"),
            old__truck__df=F("new__truck"),
        ),
    ),
    fields=["rate", "truck"],
    model_name="loadtracker",
)

但问题是,如果我只更改“rate”字段,它也会保存“truck”字段的不变值,然后当我想在前面显示更改时,我会搞砸,因为也有不变的值,例如:如果我只更改卡车字段 10 次,在 DB 中结果将是这样的

rate - truck
value1 - changed_value1
value1 - changed_value2
value1 - changed_value3
value1 - changed_value4
value1 - changed_value5
value1 - changed_value6
value1 - changed_value7
value1 - changed_value8

...

我该如何解决这个问题?如果我保存未更改的字段“None”或 null 或其他内容,那就太好了

顺便说一句,保存历史记录跟踪器的最佳做法是什么?对于其他模型,我必须跟踪大约 10 个字段,这样使用可以吗?还是我应该为每个字段创建跟踪表?

Django PostgreSQL Django-Models 历史 跟踪器

评论


答: 暂无答案