Ho cercato le migliori pratiche, ma non l'ho trovato. Non ero nemmeno in grado di trovare una soluzione che ho bisogno di usare da qualcun altro.Crea automaticamente il nome utente nel modello Utente in Django basato su altri campi
ho bisogno di generare nome utente dell'utente sulla base di altri suoi dati (nome & cognome), opzionalmente aggiungendo intero alla fine, fino a ottenere il nome utente univoco.
Preferisco fortemente farlo nel modello. C'è un modo standard per farlo? O è appropriato solo nelle forme? Ho svolto ricerche sull'overloading di vari metodi del modello User
e di segnali e non ho trovato alcun luogo adatto in cui potrei aggiungerlo.
Stavo pensando di usarlo, ma mi preoccupo di quali forme faranno effettivamente con quello. I form confermano l'input prima di effettuare una chiamata a 'save()', quindi il campo verrebbe considerato non valido. Btw. 'obj.save()' chiamerà anche il segnale 'pre_save', quindi dovrei probabilmente rimuoverlo (o rimpiazzarlo con qualcos'altro che avevi in mente). – Tadeck
La tua soluzione funziona, ma non sempre (se la convalida viene gestita prima del salvataggio, non siamo fortunati) e ha bisogno di aggiustamenti (la rimozione di 'obj.save()' e 'get_unique_username' dovrebbe funzionare anche se stiamo aggiornando il modello esistente) . In generale, penso che non ci sia un modo migliore per farlo, quindi la tua risposta è accettabile. Grazie. – Tadeck
@Tadeck vedere la risposta, ora gestisce il problema segnalato. – Ahsan