我需要在Django中实现一个非常简单的密码确认,如果用户的密码与预定义的密码匹配,该密码确认将允许用户在input
字段中输入值。
处理表单的Django官方文档未提及任何here类。
<form class="form-inline" method="POST" action="{% url 'details' %}">
{% csrf_token %}
{{ form.tact_password }}
{{ form.tacttime }}
<br>
<button type="submit" class="btn btn-outline-primary" value="submit">Submit </button>
</form>
from django import forms
class TactForm(forms.Form):
tact_password = forms.CharField(widget=forms.PasswordInput(
attrs = {
'class' : 'form-control mb-2 mr-sm-2 mb-sm-0',
'placeholder' : 'Enter Password:',
'id' : 'inlineFormInput'
}
),label='Tact Password', max_length=100)
假设我的预定义密码是HelloWorld
,并且如果用户的密码匹配,我希望用户能够提交表单 HelloWorld
。
我发现许多类似this的问题涉及检查两个不同的输入字段并查看它们是否匹配,这是不同的情况。可以使用类似的方法还是有更有效的方法?
我还应该检查views.py
文件中的密码是否匹配吗?我使用以下代码检查表单是否有效。
if request.method == 'POST':
form = TactForm(request.POST)
if form.is_valid():
current_tact = form.cleaned_data['tacttime']
else:
form = TactForm()
我的想法是user_password = form.cleaned_data['tact_p']
,然后检查admin_password
是否与user_password
匹配,但是这不允许我使用内置工具来警告用户输入的密码不正确
我将forms.py更新为以下内容,但仍然无济于事。
from django import forms
class TactForm(forms.Form):
tact_password = forms.CharField(widget=forms.PasswordInput(
attrs = {
'class' : 'form-control mb-2 mr-sm-2 mb-sm-0',
'placeholder' : 'Enter Password:',
'id' : 'inlineFormInput'
}
),label='Tact Password', max_length=100)
def check_pass(self):
user_password = cleaned_data.get('tact_p')
if user_password != 'HelloWorld':
raise forms.ValidationError("Incorrect Password")