2013-12-02 5 views
0

Я разрабатываю приложение в Flask с помощью Bootstrap 3 и WTF Forms. На странице профиля пользователь может изменить свое имя, пароль и т. Д.Как избежать автоматического заполнения пароля

Но когда я вхожу в систему и прошу Firefox запомнить мой пароль, новое поле пароля уже заполняется на странице профиля. Просто добавив value=' ' в мое поле формы, не очищается поле пароля формы.

Как мне его очистить?

ответ

1

Просто добавьте autocomplete="off" в рендеринге вызова для поля ввода пароля:

{{ form.password(autocomplete="off") }} 

С другой стороны, если вы оказываете форму с помощью макроса, который просто перебирает каждое поле в форме, вы можете использовать пользовательский виджет:

from wtforms.widgets import Input 

class PasswordWidget(Input): 
    def __call__(self, *args, **kwargs): 
     if "autocomplete" not in kwargs: 
      kwargs["autocomplete"] = "off" 
     return super(InputWidget, self).__call__(*args, **kwargs) 

, а затем в этой конкретной форме вы можете установить виджет в явном виде:

class UpdateForm(SomeBaseForm): 
    password = StringField("Password", widget=PasswordWidget()) 
+0

Большое спасибо, что сделали. – Qbite

+0

[Последние версии Chrome] (http://stackoverflow.com/questions/12374442/chrome-browser-ignoring-autocomplete-off) сделали это намного сложнее - [этот вопрос] (http://stackoverflow.com/questions/12374442/chrome-browser-ignoring-autocomplete-off) предлагает некоторые решения, которые стоит рассмотреть. –

+0

Есть ли какой-нибудь обходной путь здесь, если пользователь установил Firefox, чтобы помнить адрес электронной почты/пароль, даже если я установил autocomplete = "off"? – lozadaOmr

Смежные вопросы