概要
- django-allauthで、自作のテンプレートを作る際に既存のlabelやplaceholderが英語なので日本語に書き換えたい
- テンプレートでフィールドを出力する際は、直書きせずにfor文で回して取得している場合を想定
対応
- formクラスの
__init__
で、self.field
の辞書を上書きする
ソースコード
forms.py
from allauth.account.forms import SignupForm
class MyBaseUserSignupForm(SignupForm):
def __init__(self, *args, **kwargs):
super(MyBaseUserSignupForm, self).__init__(*args, **kwargs)
# django-allauthのフィールドを上書き
self.fields['email'].label = 'メールアドレス'
self.fields['email'].widget.attrs['placeholder'] = 'メールアドレス'
self.fields['password1'].label = 'パスワード'
self.fields['password1'].widget.attrs['placeholder'] = 'パスワード'
注意
- パスワード欄は
password1
で、数字が付く(確認用パスワード入力欄と区別するため)
参考