【问题标题】:Django: CSRF cookie not setDjango:未设置 CSRF cookie
【发布时间】:2015-08-02 09:14:57
【问题描述】:

我想在我的 django 项目中发布一个表单,导致“未设置 CSRF cookie”。错误。

views.py

​​>
from django.shortcuts import render
from django.template import RequestContext
from pyBikeMilesApp.models import Eintrag
from django.template.context_processors import csrf

# Create your views here.
def index(request):
  if request.method == 'POST':
    print(request.POST)

  # Get all posts from DB
  eintraege = Eintrag.objects
  return render(request,'index.html',{'Eintraege': eintraege})

index.html

{% extends 'base.html' %}

{% block title %}BikeMiles{% endblock %}

{% block content %}
<div class="col-md-12">
  <table class="table table-striped">
    <tr>
      <th>gefahrene KM</th>
      <th>Datum</th>
      <th>Kommentar</th>
      <th>Aktion</th>
      {% for eintrag in Eintraege %}
      <tr>
        <td>{{ eintrag.kommentar }}</td>
        <form method="post" action="http://127.0.0.1:8000/">
           {% csrf_token %}
          <input type="hidden" name="id" value="{{eintrag.id}}">
          <input type="submit" class="btn btn-xs btn-danger" value="delete" >
        </form>
      </tr>
      {% endfor %}
    </table>
  </div>
  {% endblock %}

在生成的页面中,我可以看到 csrf 输入字段:

<input type='hidden' name='csrfmiddlewaretoken' value='zzRnENjz6wrUP8Op8IVOIDsUVvclY37k' />

任何想法,如何解决?

【问题讨论】:

标签: python django django-csrf


【解决方案1】:

我前段时间遇到过这个问题:Django - AJAX not working due to csrf token not working on windows

简而言之,将@ensure_csrf_cookie 放在您的视图定义之前。

# Create your views here.
@ensure_csrf_cookie
def index(request):

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 2017-05-05
    • 2020-12-05
    • 2013-03-28
    • 2012-05-03
    • 2016-11-26
    • 1970-01-01
    • 2013-05-12
    相关资源
    最近更新 更多