以 django crispy 形式关闭自动完成功能

Autocomplete off in django crispy form

我是脆皮表配置新手。我有一个 django 表单,想在整个表单中设置 autocomplete = off。我发现可以在字段小部件中设置此属性。但是,我们如何才能在一行中应用整个表单而不是单独输入?

您可以在 <form> 标签中指定,例如:

<form <b>autocomplete="off"</b> method="post" action="some-url">
    {% crisply my_form %}
</form>

或者如果您使用 FormHelper,您可以指定 attrs:

from crispy_forms.helper import FormHelper

class ExampleForm(forms.Form):
    def __init__(self, *args, **kwargs):
        super(ExampleForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        self.helper<b>.attrs['autocomplete'] = 'off'</b>

也就是说,关闭 autocomplete 有时会带来安全隐患,因为它有时会迫使用户使用 简单 密码,而不是更复杂的密码。因此一些浏览器开始忽略这个属性。

我想您可以在表单的 __init__() 方法中添加:

for fields in self.fields.values():
    field.widget.attrs['autocomplete'] = 'off'