【问题标题】:Masking password in Django在 Django 中屏蔽密码
【发布时间】:2017-10-02 20:27:02
【问题描述】:

我是 python 和 Django 框架的新手,我创建了一个运行良好的登录表单,但唯一的问题是在输入密码时我无法屏蔽密码。

Views.py

class LoginFormView(FormView):
template_name = 'Login/login-page.html'
form_class = AuthenticationForm

def form_valid(self, form):
    login(self.request, form.get_user())
    return redirect('personal:index')

登录/login-page.html

{% block content %}
    <form class="form-horizontal" method="post" enctype="multipart/form-data">
      {% csrf_token %}
        {% for field in form %}
           <div class="form-group">
               <label for="{{ field.id_for_label }}" class="col-sm-2 control-label">{{field.html_name}}</label>
               <div class="col-sm-5">
                    <input class="form-control" id="{{ field.id_for_label }}" name="{{ field.html_name }}" />
               </div>
           </div>
        {{ field.errors }}
        {% endfor %}
      <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
          <button type="submit" class="btn btn-success ">
            <span class="glyphicon glyphicon-log-in" aria-hidden="true"></span>  Sign in
          </button>
        </div>
      </div>
    </form>
{% endblock %}

每当我尝试在views.py中添加以下代码时

password = forms.CharField(widget=PasswordInput)

我没有任何效果,如果我尝试使用 form_class 而不是表单,它不起作用,因为类型对象 'AuthenticationForm' 没有属性 'CharField'

同样在 login-page.html 我使用了默认类型设置为 text 的输入标签有没有办法将其更改为密码?正如我在表单中的字段上循环一样。

请告诉我哪里出错了。

感谢和问候, 钦梅斯瓦米

【问题讨论】:

标签: python django


【解决方案1】:

尝试将其添加到表单中:

widget=forms.TextInput(attrs={'type' : 'password'})

【讨论】:

  • 您好,它没有用。我在views.py password = forms.CharField(widget=forms.TextInput(attrs={'type' : 'password'}))中添加了以下内容
  • 您要将它添加到您的视图中吗?您没有单独的 forms.py 文件吗? ——我用自己的形式测试了这段代码,它确实有效。显示您的整个表单以获取密码,以便我查看。
  • 您好 Andrew 抱歉延迟响应我开发了应用程序的其余部分。实际上,当我使用 AuthenticationForm 时,我并没有创建一个 foms.py 但是,我确实有一个用于注册用户的 forms.py,我在那里添加了代码,但它似乎仍然不起作用。我确实怀疑罪魁祸首在于 HTML 代码 类型未设置自动根据字段
  • 您应该将表单字段从视图传递到模板,然后使用以下语法调用表单输入:{{ field.label }}: {{ field }}。如果您在视图中正确创建了表单,则不需要在 HTML 中包含 标记。请参阅以下链接:code.djangoproject.com/wiki/PasswordField
猜你喜欢
  • 2011-02-01
  • 2012-07-25
  • 1970-01-01
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
相关资源
最近更新 更多