Benutzervererbung in django
-
09-10-2019 - |
Frage
sah ich ein paar Möglichkeiten, Benutzerinformationen von Benutzern erstreckt, und beschlossen, die Modell Erbschaftsverfahren zu übernehmen.
zum Beispiel, ich habe:
class Parent(User):
contact_means = models.IntegerField()
is_staff = False
objects = userManager()
Jetzt ist es geschafft, habe ich heruntergeladen django_registration mir zu helfen, E-Mails, um neue Benutzer zu senden. Die Sache ist, anstatt Anmeldeformulare der Verwendung neuer Benutzer zu registrieren, möchte ich die E-Mail zu senden / acitvation Fähigkeit django_registration aufzurufen. Also mein Workflow ist:
1. add new Parent object in admin page.
2. send email
Mein Problem ist, schafft die django-Registrierung ein neues Registrierungsprofil zusammen mit einem neuen Benutzer in der Benutzertabelle. wie kann ich zwicken dies so, dass ich in der Lage bin der Benutzereintrag in die benutzerdefinierten Tabelle hinzuzufügen.
Ich habe versucht, ein
zu erstellen
modelAdmin
und ändern die save_model Methode, um die create_inactive_user von django_registration zu starten, aber ich weiß nicht, wie das Benutzerobjekt aus django_registration in meine Elterntabelle erzeugt zu speichern, wenn ich Modell Erbe habe mit und ich habe kein Fremdschlüsselattribut in meinen Eltern Modell.
Lösung
It's probably something like:
p = Parent()
p.user_ptr = user
p.contact_means = ...
p.save()
(Django creates the foreign key for you when doing model inheritance, plus the attribute ending in _ptr)