Django:外键冲突的反向访问器

时间:2014-03-20 16:00:37

标签: python django

我有两个继承自基类的Django模型:

- Request
    - Inquiry
    - Analysis

Request有两个外键用于内置用户模型。

create_user = models.ForeignKey(User, related_name='requests_created')
assign_user = models.ForeignKey(User, related_name='requests_assigned')

出于某种原因,我收到了错误

Reverse accessor for 'Analysis.assign_user' clashes with reverse accessor for 'Inquiry.assign_user'.

我读过的所有内容都说明设置related_name可以防止冲突,但我仍然会遇到同样的错误。谁能想到为什么会发生这种情况?谢谢!

1 个答案:

答案 0 :(得分:107)

related_name将确保字段彼此不冲突,但您有两个模型,每个模型都包含这两个字段。您需要在每个模型中添加具体模型的名称,您可以使用一些特殊的string substitution

 create_user = models.ForeignKey(User, related_name='%(class)s_requests_created')