2012-12-31 12 views
6

Ho un sistema di autenticazione basato su auth django, ma devo aggiungere informazioni agli utenti. Qual è il modo migliore per farlo in django 1.5? (Nel 1.4 stavo usando un profilo collegato con onetoone all'utente, ma ora?)Django 1.5: utente e informazioni aggiuntive

risposta

9

Django 1.5 ha extendable User models. Fondamentalmente, puoi estendere un modello utente di base astratto, aggiungere i tuoi campi e qualsiasi cosa e usarlo da lì.

Il modello base ha solo le basi per l'autenticazione: il campo password e un campo per l'ora dell'ultimo accesso. Devi persino creare il tuo campo nome utente. Se sei a tuo agio con qualcosa come l'attuale modello utente Django (con nome utente, nome, cognome, ecc.), Esiste anche come AbstractUser e puoi estenderlo invece di AbstractBaseUser e aggiungere i tuoi campi.

+1

Sì, l'ho letto sul documento. Ma non voglio implementare un AbstractBaseUser perché quello di cui ho bisogno è già in User. Devo solo aggiungere cose. Quindi, come codificarlo? – tapioco123

+0

L'utente è fondamentalmente uguale a AbstractUser, ma con un attributo SWAPPABLE (qualunque esso sia) https://github.com/django/django/blob/master/django/contrib/auth/models.py#L457. Quindi fai in modo che il tuo modello erediti da AbstractUser. – justinas

+0

Ho ereditato, ma su syncdb ho ottenuto gli errori follwing: CommandError: uno o più modelli non convalidati: account.user: Accessore per gli scontri "gruppi" del campo m2m con relativo campo m2m "Group.user_set". Aggiungi un argomento related_name alla definizione per "groups". account.user: Accessor per il campo m2m 'user_permissions' si scontra con il campo m2m correlato 'Permission.user_set'. Aggiungi un argomento related_name alla definizione per "user_permissions". auth.user: Accessor per i "gruppi" di m2m di campi in conflitto con il campo m2m correlato "Group.user_set". Aggiungi un argomento related_name alla definizione per "groups". – tapioco123

0

In django 1.5 è necessario creare un custom user model. I profili utente sono ora deprecati.

+0

Dove dice che estendere il modello utente con un "profilo" è deprecato? Il documento "sviluppo" django docs e 1.7 documenti lo presentano entrambi come la prima soluzione, e AUTH_USER_MODEL ha alcuni avvertimenti e implicazioni piuttosto pesanti ... – GreenAsJade

+0

"AUTH_PROFILE_MODULE' è [deprecato dal django 1.5] (https: //docs.djangoproject .com/it/1.6/ref/impostazioni/# auth-profilo-modulo). – dgel

Problemi correlati