Djangoの自作フォームでパスワード入力をマスク(隠す)する

Python04 December 2020

Djangoでフォームを自作する際に、 AuthenticationFormではなく通常のForm(django.forms.Form)を使ってパスワードを実装したい時に マスク(パスワードを入れるときに****みたいになるやつ)する方法。

マスクする(widget=forms.PasswordInput())

以下のように、widget=forms.PasswordInput()を指定するだけ。

  • forms.py

これだけで、パスワード用の汎用的な機能が提供されます。 (ブラウザバックとかリロードした時に、このフィールドだけ消してくれたりもするみたい。)

以下、公式のドキュメントの情報。

PasswordInput
class PasswordInput
    input_type: 'password'
    template_name: 'django/forms/widgets/password.html'
    Renders as: <input type="password" ...>
Takes one optional argument:

render_value
Determines whether the widget will have a value filled in when the form is re-displayed after a validation error (default is False).

要は、レンダリングする時に\<input type="password">で出してくれるよってことですね。

めちゃ便利!!

tags: Python