我想在Django做一个类似wiki的页面。
我有两个模型Article
和ArticleRevision
。
如果我想检索最新版本,我想我需要一个OneToOneField
中的Article
引用ArticleRevision
。但如果我想查看一篇文章的修订历史,我还需要一个ForeignKey
fromArticleRevision
引用Article
。
这可能是正确的方法,但是拥有多个外键不是有点过分了吗?我只需要一个ForeignKey(to=Article)
来自articleredition,并使用Article
从articlerevision_set.latest()
获取最新版本就可以做到这一点。但是,如果我要回滚到一个早期的修订版本,它将导致麻烦。然后我可以使用BooleanField
中的ArticleRevision
来判断它是否是最新的修订版。
有人对此有什么想法吗?我真的想用最好最有效的方法来做。
最佳答案
你应该看看django-revisions。它允许你做你所需要的,而不必重新实现所有的事情。