【发布时间】:2017-01-30 03:26:38
【问题描述】:
我整天都在试图解决这个问题,但我真的看不出问题出在哪里。
我有一个 Django AuthenticationForm,它似乎在以某种方式提交数据但没有得到验证。
forms.py:
class LoginForm(AuthenticationForm):
username = forms.CharField(widget=forms.TextInput(attrs={'name': 'username'}))
password = forms.CharField(widget=forms.PasswordInput(attrs={'name': 'password'}))
views.py:
def index(request):
template = 'myapp/login.html'
if request.method == "POST":
print request.POST #prints QueryDict with its data
reg = LoginForm(request.POST or None)
if reg.is_valid():
return HttpResponse('Success: Form is valid!')
else:
return HttpResponse('Error: Form not valid')
loginform = LoginForm()
context = {'loginform':loginform}
return render(request, template, context)
HTML:
<form method="post" action=".">
{% csrf_token %}
<h2>Sign in</h2>
<p class="text-danger">{{loginform.errors}}</p>
{{ loginform.as_p }}
<button name = "signin" type="submit" value="0">Sign in</button>
</form>
print request.POST 在我的views.py 中打印QueryDict: {u'username': [u'yax'], u'csrfmiddlewaretoken': [u'r8y1PaVNjxNWypdzP
MaFe1ZL7IkE1O7Hw0yRPQTSipW36z1g7X3vPS5qMMX56byj'], u'密码': [u'sdfdsfsddfs']
, u'signin': [u'0']} 但reg.is_valid() 不断返回false。
编辑:
我也尝试打印出reg.errors,但它没有打印出任何内容。
【问题讨论】:
-
检查发生情况的最佳方法是在失败后打印 reg.errors
-
@Aquiles 它打印出一个空字符串。
标签: python django python-2.7 django-forms