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

- Request
    - Inquiry
    - Analysis

请求有两个指向内置用户模型的外键.

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

推荐答案

related_name将确保字段不会相互冲突,但是您有两个型号,每个型号都有这两个字段.您需要将具体模型的名称放在每个模型中,您可以使用一些特殊的string substitution:

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

Django相关问答推荐

在Python中向函数的查询列表添加条件

Django - 是否可以为查询集预取单个字段的多个过滤器?

Django 长时间运行带有线程/处理的异步任务

如何使用 jQuery 建立 Django 网站

什么时候在 django rest 框架序列化程序中调用创建和更新?

在 django 中获取本地时区

手动触发 Django 邮件错误报告

用户组和权限

Django rest-auth allauth 注册,带有邮箱、名字和姓氏,没有用户名

始终将用户包含在 django 模板上下文中

Django:如何在视图中获取格式日期?

Django:从视图中添加 non_field_error?

Django:如何过滤属于特定组的用户

引发 404 并继续 URL 链

如何在 django 中捕获UNIQUE constraint failed404

Django Rest Framework 序列化程序中的循环依赖

python/django中setattr和对象操作的区别

django sql 查询如何使用不区分大小写的同时包含?

在 Django REST 框架序列化程序中动态排除或包含字段

您如何在本地针对 OpenID 进行开发