【发布时间】:2020-11-08 06:50:32
【问题描述】:
我正在使用 Django 制作登录表单,但是在我将密码输入小部件添加到我的 loginForm 后,表单文本会自动填充我数据库中的第一个用户(见下图)。这发生在我刷新或提交表单后。我希望用户名和密码字段为空。
forms.py:
class loginForm(ModelForm):
class Meta:
model = User
fields = ['username', 'password']
widgets = {'password': forms.PasswordInput()}
views.py:
def loginview(request):
if request.method == 'POST':
form = loginForm(request.POST)
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
return HttpResponse('<html> Thanks </html>')
else:
form = loginForm()
else:
form = loginForm()
return render(request, 'login.html', {'form':form})
login.html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form class="" action="" method="post">
<div class="field">
{{ form.username.label_tag }} {{ form.username }}
</div>
<div class="field">
{{ form.password.label_tag }} {{ form.password }}
</div>
{% csrf_token %}
<input type="submit" value="Login to Your Grocerylist Account ">
</form>
</body>
</html>
【问题讨论】:
-
它没有,人口可能由 浏览器 发生,特别是因为 Django 不 save 密码,它保存 hash 的密码。
标签: python django django-forms