我有一个带有大量模型和模板的应用程序来执行某项任务(它被称为“用户访问审核”,但这并不重要 - 应用程序称为“uar”)。当用户完成任务时,我们希望将主模型中的数据存档到我们称之为“历史”的表中。这些表的结构与原始的“uar”表相同,但可能存在于另一个数据库中,也可能位于同一个数据库中。但是,它们是只读的,除非将它们存档到这些历史表中的过程,以及可能是在一定年限后过期的任务。
由于我想要完全相同的模型结构但名称不同,我想我只是创建一个名为“uar_history”的应用程序,并在两个应用程序之间对models.py文件进行符号链接。但是当我尝试syncdb
新模型时,由于外键上的related_name
反向链接,我得到很多关于模型未经验证的抱怨。
有更好的方法吗?我应该只创建模型类的所有归档表子类吗?
答案 0 :(得分:1)
@Brandon给出了正确答案,您应该使用共同定义的通用抽象模型。它们可以位于同一文件或单独的模型文件中(我选择common
,current
和history
作为此示例的应用程序):
class CommonPostModel(models.Model):
title = models.CharField(max_length=255)
body = models.TextField()
class Meta:
abstract = True
class CurrentPostModel(CommonPostModel):
pass
class ArchivePostModel(CommonPostModel):
pass