如何将一些(但不是全部)模型与使用Django的用户联系起来?

2024-03-28 08:55:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我这里有两个主要问题。第一个是关于如何将教室模型与仅限制其访问的特定用户(基于其用户类型)关联。我尝试在教室模型中使用ManyToManyField关系,以便将实例与创建它的用户关联(然后我将允许用户添加学生)。看起来我没有正确理解这个字段——它实际上是所有用户对所有教室实例的访问。这显然不符合我在不同教室实例之间限制访问的要求

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

我还尝试过创建名为“课堂教师”和“课堂学生”的小组,然后为他们分配权限。这种方法似乎比必要的更复杂

我是不是忽略了什么?这是我的第一个Django项目,我很容易错过一些基本的东西

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

非常感谢您的任何见解


Tags: 项目实例用户模型应用程序教师帐户users
1条回答
网友
1楼 · 发布于 2024-03-28 08:55:38

It appears I don't understand this field correctly it actually all users to all classroom instances.

它不应该那样做。它可以在Django管理员中看起来就是这样。实际上,在ManyToMany字段中只有高亮显示/灰色的字段

许多适用于您的用例

相关问题 更多 >