DjangoのフォームのフィールドにCSSクラスを適用させる
こんにちは。Djangoのフォームのフィールド(CharFieldなど)に、CSSクラスを適用したくなることってありますよね。今回はその方法をとりあえず書いてみたいと思います。
例えばこういうフォームがあったとします。
from django import forms class TestForm(forms.Form): name = forms.charField(max_length=30) email = forms.EmailField()
この、name
というフィールドに、.name_field
というCSSクラスを適用したい場合は、以下のようにします。
from django import forms class TestForm(forms.Form): name = forms.charField(max_length=30) email = forms.EmailField() def __init__(self): super().__init__(*args, **kwargs) self.fields['name'].widget.attrs["class"] = "name_field"
また、すべてのタグに対して適用させたい場合は、
for field in self.fields.values(): field.widget.attrs["class"] = 'name_field'
などようにすれば適用できます。
バグ、コメントなどあれば是非いただければと思います。