假设我有一个拥有3种用户的应用
work_number
,department
等字段的员工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个配置文件。
解决这个问题的最佳方法是什么?
答案 0 :(得分:1)
为什么没有一个关联角色的个人资料(即使特定角色永远不会填写某些字段)?
您可以通过表单处理验证,而不是有3种不同的模型,您可以使用3种不同的形式。