禁止(403)CSRF验证失败。点击提交按钮后请求中止

时间:2015-05-19 10:02:15

标签: python html django

我正在处理django身份验证请求,我收到了禁止的错误,我检查了我的代码,但似乎我没有错误。

HTML

    <div class="grad"></div>
    <div class="header">
    <div>MLAT<span>SI</span></div>
    </div>
    <form action="{{views.login_user}}" method="POST">{% csrf_token %}
    <div class="login">
    <img src="{% static "img/Airplane.png" %}">
    <div id="h" class="home">
    <input type="text" placeholder="Login" name="username" value="">
    <input type="password" placeholder="Mot de passe" name="password" value="">
    <input style="float: left; width: 173px" type="submit" value="Log in" > 
    <input formaction="/form_registration.html/" style="float: right; width: 173px" type="submit" value="Register">

views.py

def login_user(request):
    username = request.POST.get("username")
    password = request.POST.get("password")
    user = authenticate(username=username, password=password)
    if user is not None and user.is_active:
        login(request, user)
        return HttpResponse("You're logged in.")
    else:
        return HttpResponse("Your username and password didn't match.")

2 个答案:

答案 0 :(得分:2)

您似乎在导入包中有问题。而且您调用视图的方式不正确,您应该仔细阅读Django文档

答案 1 :(得分:0)

看起来像是Django - {% csrf_token %} was used in a template, but the context did not provide the value

的副本

基本上,您的login_user视图并未使用任何渲染/上下文,因此出现错误(我不知道该视图是否与登录的url被调用)。所以Django看到了csrf_token但从未将其转换为实际的令牌值。

from django.shortcuts import render

但是你的表格和观点看起来都非常错误。表单操作{{views.login_user}}不正确。你无法通过这种方式调用视图。您的“注册”按钮将显示为HTML页面。