使用 Django 1.5 新的可配置用户模型功能实现多种用户类型的推荐方法是什么?
我想要两种用户类型:私人用户和交易用户,每个用户都有自己的一组必填字段。
我可以考虑两种方法来实现这一点:
1)多表继承
class BaseUser(AbstractBaseUser):
email = models.EmailField(max_length=254, unique=True)
# ...
class PrivateUser(BaseUser):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
# ...
class TradeUser(BaseUser):
company_name = models.CharField(max_length=100)
# ...
将多表继承与可配置用户模型结合使用有什么问题吗?
2)使用具有“类型”属性的单个模型
class User(AbstractBaseUser):
email = models.EmailField(max_length=254, unique=True)
user_type = models.CharField(max_length=30, choices={
'P': 'Private',
'T': 'Trade',
})
first_name = models.CharField(max_length=30, blank=True)
last_name = models.CharField(max_length=30, blank=True)
company_name = models.CharField(max_length=100, blank=True)
# ...
这种方法需要一些依赖于user_type
.
这些方法中的哪一种最适合我的用例?或者也许有更好的方法来实现这一目标?
另外,在第 1 种情况下,我如何过滤我的用户?
谢谢。