Implementieren mehrerer Benutzertypen mit Django 1.5
Was ist die empfohlene Methode, um mehrere Benutzertypen mit Django 1.5 zu implementieren?konfigurierbares Benutzermodell Funktionalität?
Ich möchte zwei Benutzertypen haben: Privatbenutzer und Fachbenutzer mit jeweils eigenen erforderlichen Feldern.
Es gibt zwei Möglichkeiten, dies umzusetzen:
1) Vererbung mehrerer Tabellenclass 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)
# ...
Gibt es Probleme bei der Verwendung der Mehrtabellenvererbung in Verbindung mit dem konfigurierbaren Benutzermodell?
2) Verwenden eines einzelnen Modells mit einem "Typ" -Attributclass 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)
# ...
Diese Methode würde eine bedingte Validierung erfordern, die davon abhängtuser_type
.
Welche dieser Methoden passt am besten zu meinem Anwendungsfall? Oder gibt es vielleicht einen besseren Weg, dies zu erreichen?
Wie kann ich im Fall Nummer 1 meine Benutzer filtern?
Vielen Dank.