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 Tabellen
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)
  # ...

Gibt es Probleme bei der Verwendung der Mehrtabellenvererbung in Verbindung mit dem konfigurierbaren Benutzermodell?

2) Verwenden eines einzelnen Modells mit einem "Typ" -Attribut
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)
  # ...

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.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage