在Django中扩展现有的User模型

时间:2015-05-19 10:45:54

标签: python django authentication

假设我有一个拥有3种用户的应用

  • 包含work_numberdepartment等字段的员工
  • 包含phone_number,.....
  • 等字段的会员
  • 代理商,其中包含company_name,.....
  • 等字段

他们是不同的。

我写这样的模型:

class Employee(models.Model):
    user = models.OneToOneField(User)
    department = models.CharField(max_length=100)
    .......

class Member(models.Model):
    user = models.OneToOneField(User)
    .......

class Agent(models.Model):
    user = models.OneToOneField(User)
    .......

现在我可以:

u = User.objects.get(username='xxxx')
u.employee // it works...

但是,一个用户有三个配置文件(员工,成员,代理人)!!!

这与我的业务不匹配,业务角色是一个用户可能并且必须只是一种3个配置文件。

解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

为什么没有一个关联角色的个人资料(即使特定角色永远不会填写某些字段)?

您可以通过表单处理验证,而不是有3种不同的模型,您可以使用3种不同的形式。