次の問題があります。私はAntonio Meleの例でDjangoに従っています。ここでの練習は、ユーザーのログインとログアウトを設定することです。デフォルトのcontrib.authビューを使用します。本のコードが使用されているとき。ログアウトビューは管理ページのログアウトビューです。ここに記載したものと同じ問題であると思われる。Djangoがログアウトテンプレートをレンダリングできません
django logout redirects me to administration page。すべて成功したことがありませんでした
私はこの問題に取り組んでいます。管理テンプレートがレンダリングされなくなりました。しかし、私はまだ自分のlogout.htmlを使用することができません。自分のlogin.htmlにリダイレクトすることはできますが、logout.htmlではできません。ログアウト自体は機能しています。ユーザーはログインでき、この問題のみをテンプレートで使用できます。私は今だけ1つのブラウザエラーが
を受けるページがでIceweaselは>サーバー>は問題が時々によって引き起こされることができませんcomplete.Thisん方法で、このアドレスに対する要求をリダイレクトしていることを検出しました正常にリダイレクトされていませんクッキーを受け入れることを拒否するか、拒否します。
は、クッキーはCSRFトークンが
私は以下のコード、1つの例外を除いて、すべての作品を使用している場合。私はにリダイレクトされています
:-(エラーなしなしトレースバックを受け付けて見ることができます確認しましたDjango管理のログアウトテンプレートにログアウトし、私自身のlogout.htmlではなく....これは本の中でcoedeを使用しているときです...独自の修正されたコードと別個のログアウト機能も最大recursonエラーを生成しませんでしたURLS.PYを編集すると管理用テンプレートのレンダリングが停止しますが、変更されたコードはURLに問題があるようですすなわち.....
これは動作しません!!!!!
url(r'^logout/$', 'django.contrib.auth.views.logout',{'next_page': '/account/logout'}, name='logout'),
これは完璧に動作します!!!! BOOK MAIN URLS.PY
から本SETTINGS.PY FROMfrom django.core.urlresolvers import reverse_lazy
LOGIN_REDIRECT_URL = reverse_lazy('dashboard')
LOGIN_URL = reverse_lazy('login')
LOGOUT_URL = reverse_lazy('logout')
BOOK FROM 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})
を
を次のように
url(r'^logout/$', 'django.contrib.auth.views.logout',{'next_page': '/account/login'}, name='logout'),
ブックからのコードであります
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(アカウント)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
私は今、私の見解の中に別々のログアウトの定義が含まれており、今も渡してきた:{の{キー値}のペアを'next_page': '/ account/logout'}。
ログアウトDEFをURLで使用され、マッピングされている場合は、それは、このことなく、ラインログアウト(リクエスト)
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))
で最大再帰エラーを生成するファイルのみエラーが発生DEF「「」
あります ページが正しくリダイレクトされていません
"" "Iceweaselはサーバーがこのアドレスの要求を決して完了しないようにリダイレクトしていることを検出しました。
This problem can sometimes be caused by disabling or refusing to accept cookies.""""
「」」 は、私がブラウザでクッキーをチェックし、csrf_tokenは奇妙なことがある私にとって
を受け付けて参照するコードの場合:{ 『にnext_page』: 『/アカウント/ログアウト』 、見つかったすべての提案を試してみましたが、すべてが完璧に動作 '/アカウント/ログイン'}すべてのヘルプは高く評価損でいます....MY CODE VIEWS.PY
:。} { 'にnext_page' に変更されます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))
MY CODE アカウント/ 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'),
]
MY 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
urls.py
に
contrib.auth
さん
logout
ビューを使用している
{% 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>
[django logoutの重複している可能性があるので管理ページにリダイレクトされます](http://stackoverflow.com/questions/15467831)/django-logout-redirects-me-to-administration-page) – Louis