繁体   English   中英

Django:当父模型有两个外键来自同一模型时,如何定义模型?

[英]Django: How to define the models when parent model has two foreign keys come from one same model?

我想在父模型中定义两个模型字段:created_by,modified_by,它们将用作子模型的公共字段。

class ExtendedModel(models.Model):
        created_by = models.ForeignKey(User,related_name='r_created_by')
        modified_by = models.ForeignKey(User,related_name='r_modified_by')
        class Meta:
                abstract = True

class ChildModel1(ExtendedModel):
        pass

class ChildModel2(ExtendedModel):
        pass

这会产生错误,因为ChildModel1和ChildModel2在created_by和modified_by字段上具有related_name冲突。

Django文档说明了如何解决此问题: http : //docs.djangoproject.com/en/dev/topics/db/models/#abstract-related-name

class ExtendedModel(models.Model):
        created_by = models.ForeignKey(User,related_name='"%(app_label)s_%(class)s_created_by')
        modified_by = models.ForeignKey(User,related_name='"%(app_label)s_%(class)s_modified_by')
        class Meta:
                abstract = True

class ChildModel1(ExtendedModel):
        pass

class ChildModel2(ExtendedModel):
        pass

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM