【发布时间】:2017-08-01 18:23:01
【问题描述】:
我在 google 中进行了一些研究,发现了许多不同的解决方案来处理多种用户类型。为了让我的问题更清楚,这是要求
1) 有两种类型的用户 - (一种是普通用户,另一种是开发人员)
2) 两种用户类型将具有相同的表单字段 - (用户名、电子邮件、密码、密码(确认))
以下是我尝试过的。
class customUser(AbstractBaseUser):
user_choice = (
('G', 'General'),
('D', 'Developer'),
)
user_type = models.charField(choices=user_choices, max_length=2, default='G')
class mainUser(customUser):
type = models.OneToOneField('customUser')
我必须明确处理用户名、电子邮件、密码和重新密码字段吗?
我正在使用 django allauth 进行单用户注册和登录。我现在必须以不同的方式工作吗?
【问题讨论】:
-
根据您分享的内容,您似乎最好使用
Profile模型:请参阅Extending theUsermodel -
您真的需要构建自定义用户类型吗?也许只需添加一个链接到标准
User模型的模型就足够了,除非您需要一些特殊的逻辑。根据您在此处的描述,您似乎不需要使用不同的模型。 -
@LaurentS 你能告诉我一个关于创建两个不同用户的粗略代码吗?用户可以选择注册过程。如上所述,该选项是注册为开发人员和注册为普通用户。不以自定义方式建立注册。
-
@pythonLover 用户类型有什么区别?您是否需要在他们的个人资料中存储不同的信息,或者类型只会触发视图差异等?
-
只是观点的不同。
标签: django django-models django-forms django-allauth