我有一个下面的类(其他字段是琐碎的(author等),所以省略了)。在
class Article(models.Model):
origin = models.ForeignKey('self', null=True, related_name="%(app_label)s_%(class)s_revision")
我想将一篇文章的所有修订都存储在a.website_article_revision
列表中。当我add
之后,对该列表的修订,如a.website_article_revision.add(rev)
,它会自动添加到Article.objects
管理器中,这一点可以理解,因为修订对象本身就是一个文章实例。但是我不希望任何修订出现在manager对象中,只出现在article对象a.website_article_revision
的list属性中。在
另外,我真的不想创建子类。在
如果您不希望自己对修订进行建模,则可以使用django-reversion为您完成此工作:
它有适当的记录。在
听起来像是custom managers的工作:
这将替换}的所有文章。在
Article
模型中的默认objects
管理器,Article.objects.all()
将返回origin
是{我假设检查
origin is None
是否是确定任何给定的article对象是否不是修订的方式。在编辑:您可能需要将原点
ForeignKey
更改为OneToOneField
。毕竟,一篇文章可能只有一个修订版,而那个修订版可能有另一个修订版,依此类推。在相关问题 更多 >
编程相关推荐