我如何将某些但不是全部的模型与使用Django的用户相关联?

问题描述 投票:0回答:1

我有一个包含两个不同应用程序的项目:用户和学校。在我当前的实现中,用户应用程序包含一个自Djagno的AbstractUser派生的自定义用户类。它定义了允许的用户类型为学生或教师,并且用户必须在注册期间选择一种。学校应用包含一个课堂模型,我需要与学生和一个或多个老师联系。

我在这里有两个主要问题。第一个是关于如何将教室模型与仅特定用户相关联,从而根据他们的用户类型限制他们的访问权限。我尝试在课堂模型中使用ManyToManyField关系,以便将该实例与创建它的用户关联(然后,我稍后将允许该用户添加学生)。看来我无法正确理解此字段,实际上是所有教室实例的所有用户。显然,这不符合我的限制不同教室实例之间访问权限的要求。

OneToOneField和ForeignKey似乎也不满足我的需求。我曾尝试将这些字段添加到我的用户,但是后来我被限制为每个用户只能使用一个教室,这也不可接受。

我还尝试过创建名为“ Classroom_A_teachers”和“ Classroom_A_students”之类的组,然后为其分配权限。这种方法似乎比必要的方法复杂。

我在这里俯瞰什么吗?这是我的第一个Django项目,很容易错过一些基本知识。

问题二是关于添加教师和学生模型。我想允许注册为老师的用户能够创建教室实例,然后使用学生实例填充该教室。学生也可以选择创建一个帐户。他们将从老师那里收到教室ID,然后输入该ID,然后将其帐户链接到教室实例。然后如何将该用户与现有的学生模型相关联?我一直在玩弄这个概念,但没有成功。

任何见识都将不胜感激!

python django django-models django-users
1个回答
0
投票

[我似乎无法正确理解此字段,实际上是所有教室实例的所有用户。

不应该那样做。它可以在Django Admin中看起来像那样。实际上,ManyToMany字段中唯一的那些是突出显示/灰色的。

ManyToMany适合您的用例。

© www.soinside.com 2019 - 2024. All rights reserved.