使用Django 1.5新的configurable user model功能实现多种用户类型的推荐方法是什么?
我希望有两种用户类型:私有用户和贸易用户,每个用户都有自己的必填字段集.
我认为有两种方法可以实现这一点:
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)使用具有"type"属性的单个模型
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
进行一些条件验证.
以下哪种方法最适合我的用例?或者也许有更好的方法来实现这一点?
另外,在第一种情况下,我如何过滤我的用户?
谢谢