我在教程看到例如code
如下列:是csrf需要在視圖中還是在模板中有足夠的django?
def login_view(request):
c={}
c.update(csrf(request))
return render(request,'login.html',c)
def login_view(request):
return render(request,'login.html')
在模板文件中,我有csrf_token
聲明。
{% extends "base.html" %}
{% block content %}
{% if form.errors %}
<p class="error"> sorry, not a valid username or password </p>
{% endif %}
<form action="/accounts/auth/" method="post">{% csrf_token %}
<label for="username"> UserName:</label>
<input type="text" name="username" value="" id="username">
<label for="password"> Password:</label>
<input type="password" name="password" value="" id="password">
<input type="submit" value="login">
</form>
{% endblock %}
我的問題是csrf
是否需要存在於兩端(當render
在view
以及在template
)。 render
沒有csrf
在view
工作正常。但我想知道最佳做法。我正在使用Django 1.6.2
。