【问题标题】:Django forms.PasswordInput() updated my application main passwordDjango forms.PasswordInput() 更新了我的应用程序主密码
【发布时间】:2021-12-09 00:40:01
【问题描述】:

在我的 Django 应用程序中,我有一个使用 forms.PasswordInput() 小部件呈现的自定义字段。从视觉角度来看,这可以按预期工作。但是,Chrome 会将此检测为密码,然后使用用户可能已在其应用上的帐户中设置的主密码更新此字段。有没有办法获得一个 forms.PasswordInput() 字段而没有 Chrome 混乱的密码字段?

【问题讨论】:

    标签: python python-3.x django passwords


    【解决方案1】:

    您必须将 autocomplete="off" 添加到您的密码输入中,或者在 html 中,如下所示:

    <input name="password" type="password" autocomplete="off"/>
    

    或在您的forms.py 中像这样:

    password = forms.PasswordInput(attrs={"autocomplete":"off"})
    

    更多信息可以在Mozilla documentation找到关于这个话题的信息。

    编辑

    这在我过时的 Chrome 版本中有效,但在最新版本中不受支持。您可以尝试使用here 描述的 hack,但我宁愿使用 Javascript 来重置表单。下面是一个 jQuery 示例:

    $(() => { // document.ready : wait dom to be loaded
        $('[name=password]').val("") // reset value
    })
    

    【讨论】:

    • 我刚试了一下,在 Chrome 上不起作用,它仍然使用应用上用户的密码更新字段。
    • 查看我编辑的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2017-05-14
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多