Python 我如何提交;邮政「;没有AJAX的Django中的方法表单?

Python 我如何提交;邮政「;没有AJAX的Django中的方法表单?,python,django,forms,post,csrf,Python,Django,Forms,Post,Csrf,我是Django的新手,我还与一些朋友在此框架中开发了一个非常重要的项目。我在Django中提交方法表单时遇到问题 我遇到了“403禁止”错误。它表示我的CSRF令牌配置不正确。不过,我很确定我的设置是正确的。 我的表单是关于更新数据库(MySQL)中的django用户帐户的。我也不知道我的程序逻辑在视图中是否正确。因为这个愚蠢的错误,我甚至没有机会测试它。 下面的图片和代码举例说明了我的问题 我的表格: <form method="POST" action="/validacao/" n

我是Django的新手,我还与一些朋友在此框架中开发了一个非常重要的项目。我在Django中提交方法表单时遇到问题

我遇到了
“403禁止”错误
。它表示我的
CSRF令牌配置不正确
。不过,我很确定我的设置是正确的。 我的表单是关于更新数据库(MySQL)中的django用户帐户的。我也不知道我的程序逻辑在视图中是否正确。因为这个愚蠢的错误,我甚至没有机会测试它。 下面的图片和代码举例说明了我的问题

我的表格:

<form method="POST" action="/validacao/" name="user" class="current2"> {% csrf_token %}

    <table>
        <tr>
            <td>Nome:</td><td>
            <input type='text' name='first_name' maxlength='30' value='{{usuario.first_name}}' class="campo2" />
            </td> 
            <td>Permissão: <font style="color: red;">
            {% if usuario.is_staff %} Admin {% else %} Comum {% endif %}</font>
            </td>
        </tr>
        <tr>
            <td>Sobrenome:</td>
            <td><input type='text' name='last_name' maxlength='30' value='{{usuario.last_name}}' class="campo2" /></td>
        </tr>
        <tr>
            <td>Email:</td>
            <td><input type='text' name='email' maxlength='75' value='{{usuario.email}}' class="campo2"/></td>
        </tr>
        <tr>    
            <td>Senha:</td><td> <input type='password' name='password' maxlength='120' class="campo2"/></td>
        </tr>
        <tr>    
            <td>Confirmar Senha:</td><td><input type='password' name='password2' maxlength='120' class="campo2"/></td>
        </tr>
        <tr><td></td><td><input type='submit' name='salvar' value='Salvar' class="botao2"/></td></tr>
    </table>
</form>

注意:“url.py”设置正确,奇怪的是我可以使用Django调试工具栏看到csrftoken cookie变量。

只需将@csrf_emption放在您的
def validacao_perfil(请求):
上,看看这是否有效,并尝试读取Django的文档。非常好

不过,你的settings.py呢?您是否启用了
'django.middleware.csrf.CsrfViewMiddleware'
?添加到Alex:您是否在呈现的html中看到csrf标记?我非常怀疑主题所有者希望他的代码“无论如何”工作,仍然有一个问题需要解决。@csrf\u豁免是否禁用csrf验证?我只是想让它在启用CSRF的情况下工作得很好,但我在这方面运气不好。我有办法禁用CSRF,但我认为让它在这个项目中工作很重要。
def validacao_perfil(request):

    if request.POST:

        try:
            request.user.first_name = request.POST['first_name']
            request.user.last_name = request.POST['last_name']
            request.user.email = request.POST['email']
            request.user.password = request.POST['password']
            request.user.save()
            validacao=1
        except:
            validacao=0

    variaveis_resposta={  'usuario':request.user,
                          'MEDIA_URL':settings.MEDIA_URL,
                          'height_backgroud':'900',
                          'rodape':'position:relative; top: 148px;',
                          'ordem':0,
                          'validacao':validacao,
                          'context_instance':RequestContext(request),
                          }

    return render_to_response("perfil_usuario.html", variaveis_resposta)