Warum kann ich mich nicht Abmelden auf der django-user-auth?
Ich bin mit dem django.contrib.auth-user-management-system.
Also ich hab die Registrierung/einfügen in die Tabelle user/das Modell und die Anmeldung von django.contrib.auth.Blick.login, damit ich das anmelden kann.
Jedoch kann ich nicht verwenden, django.contrib.auth.Blick.Abmelden zum Abmelden
Ich habe in meinem template
<h1>My Account</h1>
<strong> Welcome, {{ name|capfirst }}!</strong>
<br /><br />
<ul>
<li>
{% if user.is_authenticated %}
<a href="{% url django.contrib.auth.views.logout %}">Logout</a>
{% else %}
<a href="{% url register %}">Sign Up</a>
</li>
<li>
<a href="{% url django.contrib.auth.views.login %}">Login</a>
{% endif %}
</li>
</ul>
Jedoch bekomme ich immer den Namen und den link zum Abmelden, weil ich eigentlich nie Abmelden, wenn ich auf den logout-button
Hier ist meine urls.py Abschnitt: die
urlpatterns += patterns('django.contrib.auth.views',
url(r'^login/$', 'login', { 'template_name': 'registration/login.html', 'SSL': settings.ENABLE_SSL }, 'login' ),
url(r'^my_account/$', 'logout', { 'template_name': 'registration/my_account.html', 'SSL': settings.ENABLE_SSL }, 'logout' ),
)
Was mache ich falsch?
Hinweis: ich bin auch mit django über apache2 mit mod_wsgi
Dank!
Zusätzliche Info:
Nicht sicher, ob das hilft, aber ich druckte Anfrage.Sitzung.Elemente in der html-und bekam
[('_auth_user_backend', 'django.contrib.auth.backends.ModelBackend'), ('_auth_user_id', 9L)]
als ich angemeldet war, und auch nachdem ich klickte auf den logout-button (django.contrib.auth.Blick.logout)
Außerdem habe ich erstellt:
from django.contrib.auth import logout
def logout_view(request):
request.session.items = []
request.session.modified = True
logout(request)
Und miteinander verbunden, dass eine zweite Abmelden-link/button und ich habe nicht Abmelden und die Anfrage.Sitzung.Elemente die gleichen geblieben wie oben nach einem Klick auf den link
Ich glaube, ich bin schließen in:
In einer meiner Ansicht Funktionen, die ich gemacht habe:
request.session["fav_color"] = "blue"
request.session.modified = True
und drucken Sie dann in der html - {{ Wunsch.Sitzung.posten }}, der gab mir
[('_auth_user_backend', 'django.contrib.auth.backends.ModelBackend'), ('_auth_user_id', 9L)]
und kein ('fav_color', 'blau') Tupel. Habe ich etwas wieder falsch, oder ist das der Beweis, dass meine Anfrage.session-Liste nicht verändert wird?
K es herausgefunden:
url(r'^my_account/$', 'logout', { 'template_name': 'registration/my_account.html', 'SSL': settings.ENABLE_SSL }, 'logout' ),
sollte
url(r'^logout/$', 'logout', { 'template_name': 'registration/my_account.html', 'SSL': settings.ENABLE_SSL }, 'logout' ),
- Das sieht korrekt zu mir. Installieren Sie ggf. die django-debug-toolbar und sehen, was es sagt dem user-Objekt. Dies könnte Hilfe, die Sie ermitteln, dass die user-variable korrekt ist, usw.
- Hinzugefügt einige zusätzliche Infos, vielleicht könnte dies helfen, festzustellen, was das problem ist?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie ein logout-Ansicht mit der url zu dieser Ansicht. Nichts hat auf die Vorlage, habe einfach django.contrib.auth.logout() in das logout-Ansicht. Auf der neuen django-Server können Sie eaisly Abmelden, aber Sie müssen dies tun, in einem Blick, nicht eine Vorlage. Hier ist ein Auszug aus dem django-Buch:
Dieses Beispiel zeigt, wie Sie möglicherweise verwenden beide authenticate() und login() innerhalb einer view-Funktion:
Abmelden eines Benutzers mit django.contrib.auth.logout() in der view. Es dauert ein HttpRequest-Objekt und hat keinen Rückgabewert:
Beziehen sich auf die Django-Buch in Bezug auf alles,http://www.djangobook.com/en/2.0/chapter14/, lernte ich alles aus diesem Buch.
Habe ich auf dieses problem, und es ist eine blöde Kopfschmerzen. Dies ist, wie ich Kraft ausloggen. Ich erhalten
logout(request)
zu (hoffentlich) trigger der Benutzer abgemeldet Signale.:Du nicht zu schreiben, ein Blick für, die, können Sie nur:
(r'^accounts/logout/$', 'django.contrib.auth.views.logout',{'next_page': '/accounts/login'})
Mehr info: https://docs.djangoproject.com/en/dev/topics/auth/default/#django.contrib.auth.views.logout
Ich denke, dass urls.py könnte so sein(login-und logout-Ansichten nicht akzeptieren von SSL-parameter):
Und in der Vorlage: