我正在使用 Django 1.3 和 Python2.6 开发一个网络应用程序。我必须扩展 Django User 模型,以便有三种类型的用户并管理每种类型的权限。
为了阐明,假设有三种类型的用户:教师、助教和学生。助教将能够创建一个新的“作业”,教师将能够“审查”并确认它,学生“提交”解决方案,教师必须“审查”,助教最终可以检查那些“审查”的解决方案。现在有三种类型的用户:TA
可以创建作业和评分解决方案的用户,Faculty
可以查看作业和解决方案以确认它们的用户,以及Students
可以提交解决方案的用户。
现在,我知道有两种方法可以扩展用户模型。我可以创建一个 UserProfile 并添加一个名为“ user_type
”的字段。另一种方法是对 User 模型进行子类化。我认为子分类是一种更好的方法,因为对于不同类型的用户,有些字段会有所不同。
我将有一个登录表单,但可以为不同类型的用户提供不同的注册表单。你为什么会选择这两种方法中的任何一种?
我了解管理不同类型用户权限的最佳方式是通过用户组。如何创建组,检查用户是否属于组?选择如何扩展用户模型会影响我管理权限的方式吗?