django根据用户的角色扩展用户模型

时间:2017-03-18 02:49:56

标签: python django

我需要在我的项目中拥有2个用户角色:客户和雇主

第一个问题:在Django管理面板中有一个名为“groups”的选项。它和用户角色一样吗?

enter image description here

问题2

假设我需要向角色为company_name的用户添加customer等自定义字段 我读过这样的问题Extending the User model with custom fields in Django 我得到了我应该使用一个名为OneToOneField(User)的属性 但我仍然感到困惑。 那么如何在模型中添加此custon字段company_name

1 个答案:

答案 0 :(得分:0)

回答Q1: 组用于控制具有不同权限的Admin界面访问权限。如果您尝试创建组,您将看到您也可以为该特定组选择权限。所以我会说这不是你想要的。但是,如果您创建没有权限的组,您也可以将其用于您的目的。

回答Q2: 有关更多详细信息和示例,请参阅documentation。 这只是一个基本的例子。对于您的情况,您需要创建与您的auth用户模型具有一对一关系的新模型,并根据需要扩展更多字段,例如:

USER_TYPE = {0: 'Client', 1: 'Employer'}

class MySpecialUser(models.Model):
  user = models.OneToOneField(
    settings.AUTH_USER_MODEL,
    on_delete=models.CASCADE,
  )
  type = models.IntegerField(choices=USER_TYPE.items())
  # used only for Client type
  customer_name - models.CharField(..., null=True)