首页 文章

使用Django Model类继承为表创建审核日志

提问于
浏览
3

我想使用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之间存在ForeignKey关系,我是否必须担心Foo和FooAuditLog之间的级联删除/更新?

2 回答

相关问题