ereditarietà utente in django
-
09-10-2019 - |
Domanda
ho visto un paio di modi che si estendono informazioni utente degli utenti e ha deciso di adottare il metodo del modello di ereditarietà.
Per esempio, ho:
class Parent(User):
contact_means = models.IntegerField()
is_staff = False
objects = userManager()
Ora si è fatto, ho scaricato django_registration a darmi una mano con l'invio di messaggi di posta elettronica per i nuovi utenti. Il fatto è che, invece di utilizzare moduli di registrazione per registrare un nuovo utente, voglio richiamare l'e-mail di invio capacità / acitvation di django_registration. Quindi il mio flusso di lavoro è:
1. add new Parent object in admin page.
2. send email
Il mio problema è, il Django-registrazione crea un nuovo profilo di registrazione insieme ad un nuovo utente nella tabella utenti. come faccio a prelevarlo in modo tale che sono in grado di aggiungere la voce utente nella tabella utente personalizzato.
Ho cercato di creare un
modelAdmin
e modificare il metodo save_model per lanciare il create_inactive_user da django_registration, però non lo faccio come salvare l'oggetto utente generato dal django_registration nella mia tabella Padre quando ho utilizzando il modello di eredità e non ho un attributo chiave straniera nel mio genitore modello.
Soluzione
E 'probabilmente qualcosa come:
p = Parent()
p.user_ptr = user
p.contact_means = ...
p.save()
(Django crea la chiave esterna per voi quando si fa modello di ereditarietà, più l'attributo che termina in _ptr)