我想使用http://docs.djangoproject.com/en/dev/topics/db/models/#model-inheritance对现有模型进行子类化,以便创建对原始表中任何记录所做的每个更改的完整历史记录。
class Foo: data = models.TextField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def save(): super(...) audit = FooAuditLog.createFromFoo(self) class FooAuditLog(Foo): history_for = models.ForeignKey(Foo) def createFromFoo(foo): ... #Create the auditlog entry from the original record.
因此,每次创建或更新“Foo”类型的记录时,我都想拍摄 Foo 记录的快照并向 FooAuditLog 添加另一个条目。我的目标是拥有每条 Foo 记录的完整修订历史记录,以便我可以跟踪一段时间内对每条记录所做的每一项更改。
这种方法有哪些缺陷?如果 Foo 之间存在外键关系,我是否需要担心 Foo 和 FooAuditLog 之间的级联删除/更新?
最佳答案
为什么不使用像 Audit Trail 这样的东西呢?应用程序?我真的看不出继承如何真正适合日志记录所需的抽象。 Audit Trail 在类中使用一个简单的声明来封装所有事件。
关于django - 使用 Django Model 类继承为表创建审核日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4372538/