Guten Tag,
momentan schreibe ich an einem login-system für eine Webapplikation mit django. Dazu benutze ich auch django auth, allerdings blicke ich noch nicht ganz durch.
Der Login-Vorgang an sich funktioniert einwandfrei, also wenn man sich mit den richtigen Daten einloggt, dann gibt {{ user.username }} auch den Benutzernamen aus.
Allerdings verstehe ich nicht ganz, wie man aus anderen Views darauf zugreif.
Und: reicht es, wenn ich login() benutze oder muss ich noch andere Daten manuell speichern (mal davon abgesehen, dass ich keine Daten brauche, die mir die auth-API bietet)?
Zu guter letzt: Muss ich in jedem Template, dass Bezug darauf nimmt, ob ein Benutzer einloggt ist oder nicht in der entsprechenden Views ein User-Objekt returnen oder kann ich auf die Session auch irgendwie anders zugreifen?
Danke schonmal!
Django und Login
ne authenticate und login sollten reichen… (http://docs.djangoproject.com/en/1.1/to ... -a-user-in)vlynd hat geschrieben: Und: reicht es, wenn ich login() benutze oder muss ich noch andere Daten manuell speichern (mal davon abgesehen, dass ich keine Daten brauche, die mir die auth-API bietet)?
Wenn deine Views RequestContext verwenden (solltest du machen) und der auth Context Processor in deinen settings ist (sollte er per default), dann kann jedes Template auf {{ user }} zugreifen… (http://docs.djangoproject.com/en/dev/re ... ssors-auth)Zu guter letzt: Muss ich in jedem Template, dass Bezug darauf nimmt, ob ein Benutzer einloggt ist oder nicht in der entsprechenden Views ein User-Objekt returnen oder kann ich auf die Session auch irgendwie
Hm, also irgendwie klappt da was nicht.
Ich kann nicht per default auf die {{ user }} Variable zugreifen ... sonst hätte ich hier auch nicht gefragt. ;)
In meiner settings.py hatte ich keinen Punkt TEMPLATE_CONTEXT_PROCESSORS, den habe ich jetzt aber eingefügt. Allerdings musste ich django.contrib.messages.context_processors.messages rauslöschen da das eine Fehlermeldung warf ("No module named...").
Sehe ich das richtig, dass ich mit RequestContext so die Rückgabewerte definieren muss:
?
Das gibt nämlich ein "RequestContext' is not defined" obwohl ich es eigentlich importiere: "from django.template import Context, Template"
Ich kann nicht per default auf die {{ user }} Variable zugreifen ... sonst hätte ich hier auch nicht gefragt. ;)
In meiner settings.py hatte ich keinen Punkt TEMPLATE_CONTEXT_PROCESSORS, den habe ich jetzt aber eingefügt. Allerdings musste ich django.contrib.messages.context_processors.messages rauslöschen da das eine Fehlermeldung warf ("No module named...").
Sehe ich das richtig, dass ich mit RequestContext so die Rückgabewerte definieren muss:
Code: Alles auswählen
return render_to_response('login/login.html', {'form': form}, context_instance=RequestContext(request))
Das gibt nämlich ein "RequestContext' is not defined" obwohl ich es eigentlich importiere: "from django.template import Context, Template"
Das ist beim nichtverwenden von RequestContext zu erwarten.vlynd hat geschrieben:Ich kann nicht per default auf die {{ user }} Variable zugreifen ... sonst hätte ich hier auch nicht gefragt.
Da gab es kürzlich Änderungen, stell sicher, dass du die deiner Version entsprechende Doku liest.In meiner settings.py hatte ich keinen Punkt TEMPLATE_CONTEXT_PROCESSORS, den habe ich jetzt aber eingefügt. Allerdings musste ich django.contrib.messages.context_processors.messages rauslöschen da das eine Fehlermeldung warf ("No module named...").
juppSehe ich das richtig, dass ich mit RequestContext so die Rückgabewerte definieren muss:Code: Alles auswählen
return render_to_response('login/login.html', {'form': form}, context_instance=RequestContext(request))
Du importierst Context und Template aber nicht RequestContext, lesen ist schwer *scnr*Das gibt nämlich ein "RequestContext' is not defined" obwohl ich es eigentlich importiere: "from django.template import Context, Template"