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

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

- Request
- Inquiry
- Analysis

请求对内置的 User 模型有两个外键。

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应该可以防止冲突,但是我仍然得到相同的错误。有人知道为什么会发生这种事吗?谢谢!

82997 次浏览

related_name将确保字段之间不发生冲突,但是您有两个模型,每个模型都具有这两个字段。您需要在每个模型中输入具体模型的名称,您可以使用一些特殊的 字符串替换字符串替换:

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