-1

私はそのurls.pyを持っています:

from django.conf.urls import patterns, url

urlpatterns = patterns('',
    url(
        r'^login/$', 
        'django.contrib.auth.views.login', 
        {'template_name': 'loyalty/login.html'}, 
        name='login'
    ),
    url(
        r'^logout/$', 
        'django.contrib.auth.views.logout', 
        {'next_page': '/', },
        name='logout'),
)

テンプレートlogin.html*があります:

{% extends "loyalty/auth.html" %}
  {% load i18n %}  

  {% block auth_form %}
  {% if messages %}
  <ul>
    {% for message in messages %}
    <li>{{ message }}</li>
    {% endfor %}
  </ul>
  {% endif %}

  <form action="" method="post" id="login-form">{% csrf_token %}
    {% if form.username.errors %}{{ form.username.errors }}{% endif %}
    {{ form.username }}
    {% if form.password.errors %}{{ form.password.errors }}{% endif %}
    {{ form.password }}
    <input type="hidden" name="this_is_the_login_form" value="1" />
    <input type="hidden" name="next" value="{{ next }}" />
    <button type="submit" name="submit">{% trans 'Log in' %}</button>
  </form>
  {% endblock %}

そして私はsettings.pyにあります:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

しかし、これは私にこのエラーを与えます:

禁止(403)
CSRF検証に失敗しました。リクエストは中止されました。
ヘルプ
失敗の理由:
CSRFCookieが設定されていません。

管理インターフェースでも同じ問題があります。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

ビューからリクエストコンテキストを渡していない可能性があります。

例:

def show_form(request):
    form = MyForm()
    if request.method == 'POST':
         form = MyForm(request.POST)
         if form.is_valid():

    return render_to_response("template_to_display.html", {'form':form}, context_instance = template.RequestContext(request))

更新:ミドルウェアを再配置することをお勧めします。localemiddlewareを削除するか、最後に配置してみてください。djangoのデフォルトはこれです

于 2012-12-13T16:27:36.123 に答える
0

私はこの問題を解決しました。ブラウザの問題。他のブラウザを試しましたが、すべて正常に動作します。キャッシュとCookieをクリーンアップしようとしたため、なぜこの問題が発生したのかわかりませんでした。

于 2012-12-14T04:53:04.453 に答える