各フィールドに一括でplaceholderを設定する場合
from django import forms
class RegistrationForm(forms.Form):
username = forms.CharField(
label='insert your name',
)
email = forms.EmailField(
label='insert your email address',
)
def __init__(self, *args, **kwargs):
super(RegistrationForm, self).__init__(*args, **kwargs)
for field in self.fields.values():
field.widget.attrs['placeholder'] = field.label
self.fields.values()
でformの各フィールドを取得しフィールドが持つラベルをplaceholderに設定する.
フィールドごとにplaceholderを設定する場合
from django import forms
class RegistrationForm(forms.Form):
username = forms.CharField(
label='insert your name',
)
email = forms.EmailField(
label='insert your email address',
widget=forms.EmailInput(
attrs={
'placeholder': 'メールアドレスを入力してください.'
}
)
)
注:EmailFieldはwidgetとして設定できないフィールドなので代わりにEmailInputを利用しています