Haben Sie das folgende Problem; Ich folge Django von Beispiel, Antonio Mele. Die Übung hier ist, Benutzeranmeldung einzurichten und abzumelden.Verwenden Sie die Standardansichten von contrib.auth. Wenn der Code im Buch verwendet wird. Die Abmeldesicht ist die Abmeldung der Verwaltungsseite. scheint das gleiche Problem zu sein wie hier beschriebenDjango kann die Abmeldevorlage nicht rendern
django logout redirects me to administration page. Habe alles versucht, kein Erfolg
Ich habe an diesem Problem gearbeitet. Mein Code funktioniert jetzt, da die Admin-Vorlage nicht mehr gerendert wird. Ich kann jedoch immer noch meine eigene logout.html nicht verwenden. Ich kann auf meine eigene login.html umleiten ... aber nicht auf die logout.html. Die Abmeldung selbst funktioniert. Der Benutzer kann sich anmelden und nur dieses Problem mit den Vorlagen ausschließen. Ich jetzt erhalten nur ein Browser-Fehler
Die Seite ist nicht Umleiten richtig hat Iceweasel festgestellt, dass die> Server die Anfrage in einer Art und Weise für diese Adresse umleiten, die will> nie Problem complete.This kann manchmal verursacht werden Deaktivieren oder> Ablehnen der Annahme von Cookies.
überprüft die Cookies csrf Token akzeptiert
kein Zurückverfolgungs verfügbar keine Fehler :-(
Wenn ich den Code unten verwenden sehen können, alle Arbeiten mit einer Ausnahme. Ich bin umgeleitet zu Logout zu der Django Administration Logout-Vorlage, und nicht meine eigene Logout.html .... Dies ist, wenn der Koede im Buch verwendet .... Mein eigener modifizierter Code, mit einer separaten Logout-Funktion, funktionierte ebenfalls nicht und erzeugte einen maximalen Rekursonfehler Das Bearbeiten von URLS.PY stoppt das Rendern der Admin-Vorlage, aber der geänderte Code scheint ein Problem in den URLs zu haben d. h.
DAS FUNKTIONIERT NICHT !!!!!
url(r'^logout/$', 'django.contrib.auth.views.logout',{'next_page': '/account/logout'}, name='logout'),
DAS FUNKTIONIERT PERFEKT !!!!
url(r'^logout/$', 'django.contrib.auth.views.logout',{'next_page': '/account/login'}, name='logout'),
Der Code aus dem Buch ist als
FROM BOOK SETTINGS.PY
folgtfrom django.core.urlresolvers import reverse_lazy
LOGIN_REDIRECT_URL = reverse_lazy('dashboard')
LOGIN_URL = reverse_lazy('login')
LOGOUT_URL = reverse_lazy('logout')
VOM BUCH VIEWS.PY
from django.http import HttpResponse
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from .forms import LoginForm
@login_required
def dashboard(request):
return render(request, 'account/dashboard.html', {'section': 'dashboard'})
def user_login(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
user = authenticate(username=cd['username'], password=cd['password'])
if user is not None:
if user.is_active:
login(request, user)
return HttpResponse('Authenticated successfully')
else:
return HttpResponse('Disabled account')
else:
return HttpResponse('Invalid login')
else:
form = LoginForm()
return render(request, 'account/login.html', {'form': form})
VOM BUCH MAIN URLS.PY
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^account/', include('account.urls')),
]
MYAPP (Konto) URLS.PY
from django.conf.urls import url
from . import views
urlpatterns = [
# url(r'^login/$', views.user_login, name='login'),
url(r'^$', views.dashboard, name='dashboard'),
# login/logout urls
url(r'^login/$', 'django.contrib.auth.views.login', name='login'),
url(r'^logout/$', 'django.contrib.auth.views.logout', name='logout'),
url(r'^logout-then-login/$', 'django.contrib.auth.views.logout_then_login', name='logout_then_login'),
MY MODIFIFED CODE
Ich habe nun auch eine separate Logout-Definition in meiner Sicht ist und jetzt passieren auch einen {key: value} Paar { 'next_page': '/ account/logout'}.
wenn die Abmelde def verwendet wird und in den URLs zugeordnete Datei es in Zeile Logout (request)
def logout(request):
logout(request)
request.session.flush()
request.user = AnonymousUser
# Redirect to a success page.
return HttpResponseRedirect(request,'/account/logout.html',context_instance = RequestContext(request))
einen maximalen Rekursion Fehler erzeugt, ohne dass dies der einzige Fehler def erzeugte
""“ Die Seite leitet nicht richtig um
"" "Iceweasel hat festgestellt, dass der Server die Anforderung für diese Adresse auf eine Weise umleitet, die nie abgeschlossen wird.
This problem can sometimes be caused by disabling or refusing to accept cookies.""""
""“ ich Cookies im Browser aktiviert ist, und sehen Sie die csrf_token
Für mich akzeptiert das Merkwürdige ist, dass, wenn der Code: { 'next_page': '/ account/Logout' } geändert zu { 'next_page': '/ account/login'} alles perfekt funktioniert versucht hat, alle Vorschläge gefunden, bei einem Verlust ist jede Hilfe dankbar ....
MEIN CODE VIEWS.PY
.from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth import authenticate, login, logout
from .forms import LoginForm
from django.contrib.auth.decorators import login_required
from django.template import RequestContext
from django.contrib.auth.models import User
# Create your views here.
@login_required
def dashboard(request):
return render(request, 'account/dashboard.html',{'section': 'dashboard' })
def user_login(request):
cd = None
if request.method=='POST':
form = LoginForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
user = authenticate(username=cd['username'],
password=cd['password'])
if user is not None:
if user.is_active:
login(request, user)
return HttpResponse('Authenticated successfully')
else:
return HttpResponse('Disabled Account')
else:
return HttpResponse('Invalid Login')
else:
form = LoginForm()
return render(request, 'account/login.html',{'form': form},context_instance = RequestContext(request))
def logout(request):
logout(request)
request.session.flush()
request.user = AnonymousUser
# Redirect to a success page.
return HttpResponseRedirect(request,'/account/logout.html',context_instance = RequestContext(request))
MEIN CODE Konto/urls.py
from django.conf.urls import url, patterns
from . import views
urlpatterns = [
# post views
#url(r'^login/$', views.user_login, name='login'),
# login/logout urls
url(r'^$', views.dashboard, name='dashboard'),
url(r'^login/$', 'django.contrib.auth.views.login', name='login'),
url(r'^logout/$', 'django.contrib.auth.views.logout',{'next_page': '/account/logout'}, name='logout'),
url(r'^logout-then-login/$','django.contrib.auth.views.logout_then_login', name='logout_then_login'),
]
MEIN CODE MAIN URLS.PY
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^account/', include("account.urls")),
]
MyCode SETTINGS.PY
LOGIN_REDIRECT_URL = reverse_lazy('dashboard')
LOGIN_URL = reverse_lazy('login')
LOGOUT_URL = reverse_lazy('logout')
INSTALLED_APPS = (
'account',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
MIDDLEWARE_CLASSES = (
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
# urlpatterns += patterns('django.contrib.auth.views',
# #url(r'^login/$', 'login', { 'template_name': 'registration/login.html'}, name='login'),
# #url(r'^logout/$', 'logout', { 'template_name': 'registration/logout.html', 'next_page':reverse('index') }, name='logout'),
# )
MyCode
logout.html
{% extends "base1.html" %}
{% block title %}Logged Out{% endblock %}
{% block content %}
<h1>
Logged Out
</h1>
<p>
You have been successfully logged out. You can <a href="{% url "login" %}">Log-in again</a>
</p>{% endblock %}
MyCode base1.html
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{% static 'css/base.css' %}">
</head>
<body>
<div id="header">
<span class="logo">
BookMarks
</span>
{% if user.is_authenticated %}
<ul class="menu">
<li {% if section == "dashboard" %}class="selected"{% endif %}>
<a href="{% url 'dashboard' %}">My dashboard</a>
</li>
<li {% if section == "images" %}class="selected"{% endif %}>
<a href="#">Images</a>
</li>
<li {% if section == "people" %}class="selected"{% endif %}>
<a href="#">People</a>
</li>
</ul>
{% endif %}
{%if user.is_authenticated %}
<span class="user">
Hello {{ user.first_name }} {{ user.last_name }},
<a href="{% url 'logout' %}">Logout</a>
{% else %}
<a href='{% url "login" %}'>Log-in</a>
{% endif %}
</span>
</div>
<div id="content">
{% block content %}
{% endblock %}
</div>
</body>
</html>
Mögliches Duplikat von [django logout leitet mich zur Verwaltungsseite weiter] (http://stackoverflow.com/questions/15467831/django-logout-redirects-me-to-administration-page) – Louis