2016-04-17 17 views
0

Gibt es eine Möglichkeit, meine Benutzerregistrierung in einer anderen Tabelle aus der Datenbank zu speichern?Django - Benutzer in einer anderen Tabelle speichern

Ich will nicht mit Adminusers CommonUsers mischen (Alle Tutorials, die ich gesehen habe, sie die Registrierung innerhalb auth_user speichern)

Die Gründe:

  • CommonUsers haben unterschiedliche Spalten und Informationen
  • CommonUsers können Inhalte
  • Adminusers überprüfen Sie die von den CommonUsers hochgeladenen Inhalte hochladen und sicher, es gibt nichts unangemessen

Was brauche ich? Modelle? Modellform? Formen?

Antwort

-1

Die beste Lösung für Sie ist die Unterklasse User Modell und fügen Sie die zusätzlichen Spalten, die Sie für Ihre CommonUsers benötigen. Ihr Code wird wahrscheinlich so etwas wie dies am Ende aussehen:

models.py

from django.contrib.auth import models 
from django.db.models import * 

class CommonUser(models.User): 
    custom_field1 = CharField(max_length=255, null=True) 
    custom_field2 = CharField(max_length=255, null=True) 

Link to docs

+0

würde, dass ich nicht einen Fehler entdeckt? mit der erforderlichen Füllung (nicht null) zum Beispiel: mein AdminUser benötigt Geburtsdatum und kann nicht Null sein, aber wenn das CommonUser-Register das Geburtsdatum nicht fragt, Was passiert also, wenn die Registrierung gültig ist, erhält das Geburtsdatum für commonUser einen Standardwert? – BrianCas

+0

Sie müssen auch 'auth_user' für Ihren AdminUser eindeutig ableiten, so dass AdminUser und CommonUser Geschwisterklassen sind, nicht Eltern und Kind. Wie haben Sie das Geburtsdatumsfeld zu Ihrem Admin-Benutzer hinzugefügt? Alternativ können Sie für die Felder, die nur von AdminUser benötigt werden, einen Standardwert für die Felder wie Geburtsdatum festlegen. Aber die erste Lösung, die ich angeboten habe, ist definitiv der richtige Weg. – ygesher

Verwandte Themen