我对Django来说是全新的,我也在这个框架中与一些朋友一起开发了一个非常重要的项目。我在Django中提交" POST" 方法表单时遇到问题。
我有"403 Forbidden" error
。它说我的CSRF token isn't configured correctly
。不过,我确信我确实正确设置了它。
我的表单是关于更新数据库(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>
我的观点:
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)
Obs。:&#34; urls.py&#34;设置正确,奇怪的是我可以使用Django调试工具栏看到csrftoken cookie var。
答案 0 :(得分:-1)
将@csrf_exempt放在你的def validacao_perfil(request):
上,看看是否有效,并尝试阅读django的文档。这非常好!!