首页 > 解决方案 > 如何在 django 中使用不同的表注册不同类型的用户?

问题描述

我是 django 的新手,我想为不同的用户(如学生、教学人员、非教学人员、3 个表)使用不同的表注册用户。

我该怎么做而不是使用默认的 auth_users 表进行注册

标签: pythondjango

解决方案


在 Django 中,您通常应该只有一个 User 模型。这样,跨用户类型的通用功能(例如,登录和注销)都可以通过引用数据库中的同一组表来执行。

如果您想注册不同的用户类型,您有几个不同的选项。您可以扩展默认用户模型并创建具有唯一属性的子类(有关如何执行此操作的更多信息,请参阅 Django 文档:https ://docs.djangoproject.com/en/2.1/topics/auth/customizing/#扩展现有用户模型);或者,您可以创建自己的自定义用户模型,该模型具有将用户标记为学生、教学人员或非教学人员的开关(请参阅 Django 文档:https ://docs.djangoproject.com/en/2.1/topics /auth/customizing/#substituting-a-custom-user-model)。或者,您也可以将用户添加到组中,并根据他们所在的组授予他们不同的权限。

这些方法中的任何一种都可以工作,但归根结底,您的所有用户模型都应该放在一个总体大师班下。


推荐阅读