使用Django表单(v1.10)的简单预定义密码确认

时间:2018-08-23 11:15:37

标签: python html django django-forms

我需要在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>

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)

假设我的预定义密码是HelloWorld,并且如果用户的密码匹配,我希望用户能够提交表单 HelloWorld

我发现许多类似this的问题涉及检查两个不同的输入字段并查看它们是否匹配,这是不同的情况。可以使用类似的方法还是有更有效的方法?

我还应该检查views.py文件中的密码是否匹配吗?我使用以下代码检查表单是否有效。

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")

0 个答案:

没有答案