Quelle est la méthode recommandée pour mettre en œuvre plusieurs types d'utilisateur à l'aide de Django 1.5 nouveau configurable par l'utilisateur du modèle de la fonctionnalité?
Je voudrais avoir deux types d'utilisateurs: les utilisateurs privés et les utilisateurs commerciaux, chacun avec leur propre ensemble de champs obligatoires.
Il ya deux façons que je peux penser pour mettre en œuvre ce:
1) Multi-héritage de 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)
# ...
Existe-il des problèmes avec l'utilisation de multi-héritage de table en conjonction avec l'utilisateur configurable modèle?
2) à l'Aide d'un modèle unique avec un attribut "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)
# ...
Cette méthode nécessite un certain conditionnelle de validation dépend user_type
.
Laquelle de ces méthodes correspond le mieux à mon cas d'utilisation? Ou peut-être il ya une meilleure façon d'atteindre cet objectif?
Aussi, Dans le cas numéro 1, comment puis-je filtre mes utilisateurs?
Merci.