Реализация нескольких пользовательских типов с Django 1.5
Каков рекомендуемый способ реализации нескольких типов пользователей с использованием 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, как я могу отфильтровать своих пользователей?
Благодарю.