如何在django中指定多对一模型?
我正在尝试链接两个模型:如何在django中指定多对一模型?,django,python-3.x,database,django-models,Django,Python 3.x,Database,Django Models,我正在尝试链接两个模型:部门和用户。他们有一种多对一的关系。 部门只能有管理员(用户),而部门可以有多个用户。 用户只能在一个部门 这是我的密码 class Department(models.Model): admin = models.ForeignKey("applications.User", blank=True, null=True, on_delete=models.SET_NULL) class User(AbstractUser, models.Model):
部门
和用户
。他们有一种多对一的关系。
部门
只能有管理员
(用户),而部门
可以有多个用户。
用户
只能在一个部门
这是我的密码
class Department(models.Model):
admin = models.ForeignKey("applications.User", blank=True, null=True, on_delete=models.SET_NULL)
class User(AbstractUser, models.Model):
username = models.CharField(max_length=32, unique=True)
department = models.ForeignKey(Department, null=True, on_delete=models.SET_NULL, related_name="members")
但我有一个错误:
ERRORS:
applications.Department.admin: (fields.E303) Reverse query name for 'Department.admin' clashes with field name 'User.department'.
HINT: Rename field 'User.department', or add/change a related_name argument to the definition for field 'Department.admin'.
我需要保持属性按原样命名。
如何正确地修复和建模表之间的关系
django是否假设该部门可能有许多管理员?不,django没有假设任何事情。只需向Department.admin模型添加
related_name
参数,该参数的值为Department_admin
或任何您喜欢的值即可。这将只更改反向查找字段名。您是否尝试将相关的\u名称
参数添加到部门管理
?Django假设一个管理员可能有很多部门,而不是相反。