我正在學習Django和我爲此購買了一本書。我嘗試使用方法=「post」爲表單創建連接系統。當我提交的CSRF cookie沒有設置等...我在論壇上看到很多類似的問題,但仍然有點卡住,因爲我不明白所有的答案,我還沒有找到一些工作,例外@csrf_exempt但我看到它就像禁用了這些東西,這不是一個好主意。下面的代碼:Django CSRF cookie未設置。卡住
我的HTML頁面的login.html:
<form action="." method="post">{% csrf_token %}
{% if error %}
<p class="error">{{ error }}</p>
{% endif %}
<p>
<label for="email">E-mail :</label>
<input name="email" id="email" size="30" type="email" />
</p>
<p>
<label for="password">Password :</label>
<input name="password" id="password" size="30" type="password" />
</p>
<p>
<input type="submit" value="Log-in" />
<a href="">Créer un compte</a>
</p>
我views.py:
from django.shortcuts import render_to_response
from datetime import datetime
from django.views.decorators.csrf import csrf_protect
from django.http.response import HttpResponseRedirect
# from django.http import HttpResponseRedirect
def welcome(request):
return render_to_response('welcome.html',
{'curent_date_time' : datetime.now})
@csrf_protect
def login(request):
if len(request.POST) > 0:
if 'email' not in request.POST or 'password' not in request.POST:
error = "Veuillez entrer un adresse mail et un mot de passe."
return render_to_response('login.html', {'error': error})
else:
email = request.POST['email']
password = request.POST['password']
if password != 'sesame' or email != '[email protected]':
error = "Adresse de couriel ou mot de passe errone."
return render_to_response('login.html', {'error': error})
else:
return HttpResponseRedirect('welcome/')
else:
return render_to_response('login.html')
如果需要的話我還可以顯示我的設置。和一個錯誤messahe的屏幕如果它可以幫助太。
P.S:我知道這裏已經有很多東西了,但是我被困住了,一些個人幫助對我來說很好理解它來自何處。
不確定它是否相關,但在代碼中沒有看到「」。 – roganjosh
他是我忘記選擇它時,我複製了代碼 – SamHel