Implementando vários tipos de usuários com o Django 1.5

Qual é a maneira recomendada de implementar vários tipos de usuários usando o novo Django 1.5?modelo de usuário configurável funcionalidade?

Eu gostaria de ter dois tipos de usuários: usuários particulares e usuários comerciais, cada um com seu próprio conjunto de campos obrigatórios.

Há duas maneiras de pensar em implementar isso:

1) herança multi-table
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)
  # ...

Há algum problema com o uso da herança de várias tabelas em conjunto com o modelo de usuário configurável?

2) Usando um único modelo com um atributo "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)
  # ...

Este método exigiria alguma validação condicional dependente deuser_type.

Qual destes métodos melhor se adapta ao meu caso de uso? Ou talvez haja uma maneira melhor de conseguir isso?

Além disso, no caso número 1, como posso filtrar meus usuários?

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion