Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在django中指定多对一模型?_Django_Python 3.x_Database_Django Models - Fatal编程技术网

如何在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假设一个管理员可能有很多部门,而不是相反。