设计保留修订历史记录的模型

时间:2014-01-28 19:43:10

标签: python django

我正在尝试为Django应用程序创建一个模型来处理发票,但我不确定正确的方法。发票必须是给定时间点的值的快照。如果您今天更改商品的价格,则不会影响之前的发票。我还需要为每张发票保留完整的修订历史记录。

发票最多可包含40个不同的属性,其中大部分属性为空。发票也有不同的地址,例如发件人,收件人和邮政地址。发票还包含行,每行都有自己的值。

1 个答案:

答案 0 :(得分:0)

您需要设置一个事务表来记录发票中的更改。此表可以包含指向不同地址的地址表的链接。您可能希望保存此发票 交易表到客户表,因此您可以随时获得交易点。

Django内置了用于保存日期的字段,因此您可以使用不同位置的字段自动记录事务表中的日期。 Django中这些字段的示例是:

from django.db import models

class MyModel(models.Model):
  created = models.DateField(auto_now_add=True)
  modified = models.DateField(auto_now=True)

我的建议是在Client表中创建一个链接作为事务表的Many-to-Many。并且每次发票/更改。加入这个领域。然后,您可以按日期,最近等参考交易表...以获取您需要的信息。您可以为当前发票等设置BooleanField