我想创建一个其他模型继承来跟踪一些基本信息的抽象基类(Created_Date,Mod_date,Created_by,Mod_by等),这是我想要的一个例子:
class MetaDataModel(models.Model):
added_by = models.ForeignKey(settings.AUTH_USER_MODEL, )
modified_by = models.ForeignKey(settings.AUTH_USER_MODEL)
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
active = models.BooleanField(default=True)
class Meta:
abstract = True
但是,当我在多个其他模型中使用此类时,我收到一条错误告诉我:
takeoffs.Takeoff.added_by :( fields.E304)反向访问器 ' Takeoff.added_by'与反向访问者发生冲突 ' InputTakeoffItem.added_by'
提示:在' Takeoff.added_by'的定义中添加或更改related_name参数。或者' InputTakeoffItem.added_by'。
在所有模型中实施。
如何创建ABC以跟踪创建和上次修改项目的人员?
答案 0 :(得分:2)
很抱歉,经过几天的挣扎,我实际上在Django的文档中找到了答案。您可以将两个变量(?)添加到related_name字段:
这将使related_name从继承它的每个类中唯一。
此处的文档:https://docs.djangoproject.com/en/1.10/topics/db/models/#abstract-related-name