【问题标题】:Vexed by csrf_token -- though it's there被 csrf_token 困扰——尽管它在那里
【发布时间】:2014-04-12 06:58:15
【问题描述】:

我不断收到缺少 csrf_token 的验证失败。我对此感到非常困惑/坚持。正如您在下面的代码中看到的那样,它实际上就在那里。任何帮助将不胜感激。 Django==1.6.1 顺便说一句

MIDDLEWARE_CLASSES = (.... 'django.middleware.csrf.CsrfViewMiddleware', ...)

class BaseSignUp(View):
    model = None
    form = None
    template = None

    def get(self, request):
        return render_to_response(self.template,
           {'user_form': UserCreateForm, 'form': self.form})

    def post(self, request):
       user = UserCreateForm(request.POST)
       obj = self.form(request.POST)
       if user.is_valid():
          user.save()
       else:
          return render_to_response(self.template, {'user_form': user, 'form': obj})


<form method="post">
    {% csrf_token %}
    <table>
    {{ user_form }}
    {{ form }}
    </table>
    <button type="submit">Save</button>
</form>

【问题讨论】:

  • 能否检查一下页面的html中是否有隐藏的csrf输入?
  • 我没有。它根本没有被创建。

标签: django django-templates django-views django-csrf


【解决方案1】:

在这里找到答案Django - {% csrf_token %} was used in a template, but the context did not provide the value

我在视图中的 post/get 方法中缺少 context_instance=RequestContext(request)

经验教训:只是用户渲染。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多