ModelFormでfieldのwidgetを変更する
前提
Django 1.2以降がインストールされていること
widgetの変更
Django 1.2より前では、ModelForm上でwidgetを変更するには
from django import forms
from django.forms.widgets import Textarea
from appname.models import Blog
class BlogForm(forms.ModelForm):
content = forms.CharField(widget = Textarea)
class Meta:
model = Blog
としていましたが、
Django 1.2以降ではMetaクラスのオプションとしてwidgetsが追加されました。
from django import forms
from django.forms.widgets import Textarea
from appname.models import Blog
class BlogForm(forms.ModelForm):
class Meta:
model = Blog
widgets = {
'content': Textarea,
}
field名とwidgetを指定するだけで簡単に変更できます。