同じフォームを複数の画面で使う場合、使う画面によって指定するcssのclassが異なるケースがあると思います。
そんな時、view側でフォームのインスタンスを生成した後でattrsを指定できると便利です。そんなサンプルです。
class EntryForm(forms.Form):
body = forms.CharField(widget=forms.Textarea())
こんなフォームがあったとして、viewで使うときには
_form = EntryForm()
_form.fields[‘body’].widget.attrs[‘class’] = ‘some_css_class’
です。これで
<textarea id=”id_body” rows=”10″ cols=”40″ name=”body” class=”some_css_class”></textarea>
こんな感じのHTMLが出力されます。
_form.fields[‘body’].widget.attrs[‘disabled’] = True
とかもできるので、シチュエーションによって使い分けられると思います。
Django1.3で試しましたが、1.0以降なら動くんじゃないかな?