Django:反向访问者外键冲突 [英] Django: reverse accessors for foreign keys clashing

查看:131
本文介绍了Django:反向访问者外键冲突的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

   - 请求
- 查询
- 分析

请求有两个外键到内置的用户模型。

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

由于某些原因我收到错误


$ b $对于'Inquiry.assign_user',Analysis.assign_user的反向访问者与反向访问者冲突。



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

解决方案

相关名称将确保这些字段不会相互冲突,但您有两个模型,每个模型有这两个领域。您需要将具体模型的名称放在每个模型中,您可以使用一些特殊的字符串替换

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


I have two Django models which inherit from a base class:

- Request
    - Inquiry
    - Analysis

Request has two foreign keys to the built-in User model.

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

For some reason I'm getting the error

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

Everything I've read says that setting the related_name should prevent the clash, but I'm still getting the same error. Can anyone think of why this would be happening? Thanks!

解决方案

The related_name would ensure that the fields were not conflicting with each other, but you have two models, each of which has both of those fields. You need to put the name of the concrete model in each one, which you can do with some special string substitution:

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

这篇关于Django:反向访问者外键冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆