Secondo la documentazione di Django, il campo "email" è facoltativo. Voglio cambiare questo comportamento predefinito spedito da Django.
Ho esteso il modello per aggiungere un po 'di costumecampi, ma ancora non riesco a sovrascriverlo (a causa di limitazioni tecniche). Qui ho visto altre domande su problemi relativi al modello Utente e di solito suggeriscono di sottoclasse il modulo di registrazione per richiedere il campo email.
Tuttavia, non puoi farlo dal lato amministrativo. La mia applicazione non ha un modulo di iscrizione, ma gli utenti devono essere aggiunti dal pannello di amministrazione.
Finora ho cercato su google per un bel po 'di tempo esembra che non sia affatto possibile o devo ricreare un intero modello solo per cambiarlo, il che non suona come la soluzione ottimale per me.
Qualcuno ha un metodo migliore?
risposte:
0 per risposta № 1Se vuoi solo fare il campo emailrichiesto, quindi il modo più pulito è creare un modello utente personalizzato che sia esattamente come il tuo modello utente originale, ma con il campo email impostato come unico. Django ha già un AbstractUser
classe che ha ciò di cui hai bisogno. Puoi modificare il tuo User
modello come questo -
class MyUser(AbstractUser):
# your extra fields
Dopo aver apportato la modifica, Django manterrà il campo di posta elettronica richiesto ovunque lo si usi, anche dal pannello di amministrazione.