2014-01-29 6 views
5

Ich bin ziemlich neu in Django. Ich versuche, Benutzerprofil mit Hilfe von request.user.get_profile() zu bekommen, aber es gibt eine Warnung, dass die Verwendung von AUTH_PROFILE_MODULE veraltet ist.Was ist der neue Ansatz, um Benutzerprofil in Django 1.6 zu erhalten?

Ich habe eine Zeile in meinem settings.py: AUTH_PROFILE_MODULE = "log_viewer.Configs" wo Configs ein Modell mit Feldern ist, um Benutzerprofileinstellungen zu behalten.

Was ist der neue Ansatz dafür?

+1

einen benutzerdefinierten Gestaltung verwenden Benutzer – lalo

+1

Sie müssen nicht zu einem benutzerdefinierten Benutzer wechseln (was eine komplizierte Schemaänderung zur Folge haben könnte), um Django 1.6 zu verwenden. Um mit den Verwarnungswarnungen fertig zu werden, müssen Sie nur 'AUTH_PROFILE_MODULE' und' get_profile() 'in Ihrem Code ersetzen. Wenn Sie ein Eins-zu-eins-Feld verwenden, kann es so einfach sein wie 'request.user.profile', wie Daniels Antwort nahelegt. – Alasdair

Antwort

8

Zunächst erstelle ich ein 'Profil' für Benutzer:

User.profile = property(lambda u: Configs.objects.get_or_create(user=u)[0]) 

und diese um das Profil zu erhalten verwenden:

request.user.profile 

ausführlichen hier: https://code.djangoproject.com/ticket/15937

+1

Es gibt kein Feld 'Profil' in der Klasse 'Benutzer'. Lies 'AbstractUser' Klasse in Django. – vwvolodya

+1

Ich erkannte, dass ich eine Profileigenschaft für den Benutzer erstellt und meine Antwort bearbeitet habe. Vielen Dank für die Hinweise und die Unannehmlichkeiten –

Verwandte Themen