首页 > 解决方案 > 用户可以在 Django 中拥有其他用户吗?

问题描述

所以,我对 Django 还很陌生,我知道只有一种User类型。我想知道建立模型的最佳方法是什么。

我的网站需要 4 种不同类型的用户:管理员(包括超级用户)、教师、学生、家长。我希望只有管理员能够使用内置的管理 UI。我希望教师拥有一些管理功能,但仅限于前端 UI。

到目前为止,我已经扩展了 AbstractBaseUser 和 BaseUserManager 以创建可以分配上述 4 个角色和一些不同事物的用户。他们正在工作,我可以用他们管理页面视图的授权,但这只是我希望做的事情的皮毛。

但是,当我希望老师在一个班级中有很多学生并且只在他们登录时才能看到这些学生时,我该如何管理呢?我希望管理员将这些学生分配给老师,然后允许老师对学生信息有一些权限。

我可以使用信号来创建一个Teacher属于 a 的模型,并且User具有 a roleof 的教师,并且同一个Teacher模型has_many``Students. The ``Student也将立即创建User具有 arole的a student

我正在考虑如何Profile使用新的User.

我知道如何将教师、学生和家长等联系起来,但是当他们也是所有用户类型时,我会感到困惑。

或者有没有办法做到这一点,只需将它们保持为具有角色的“用户”并以另一种方式关联它们?

谢谢您的帮助。

标签: djangorelationshipdjango-users

解决方案


你为什么不试试这个:-

https://simpleisbetterthancomplex.com/tutorial/2018/01/18/how-to-implement-multiple-user-types-with-django.html

我认为这就是您正在寻找的答案。

如果您需要进一步解释,请告诉我。

快乐编码:-)


推荐阅读