Реализация нескольких пользовательских типов с 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, как я могу отфильтровать своих пользователей?

Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос