私はクリスピーフォームを実行してきましたが、それはまさに私が望むことをしているようです:フォームをブートストラップレイアウトでレンダリングします。
さて、例は の使用について話しforms.Form
ます。これは問題ありません。次のようなコードを記述して作成できます。
class TemplateCreateForm(forms.Form):
title = forms.CharField(label=(u'Task name'))
description = forms.CharField(label=(u'Task description'))
url_start = forms.CharField(label=(u'Start page url'))
url_end = forms.CharField(label=(u'Final page url'))
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_method = 'post'
self.helper.add_input(Submit('submit', 'Submit'))
super(TemplateCreateForm, self).__init__(*args, **kwargs)
でも、更新ってどうやるの?これをビューに入れた場合:
form = TemplateCreateForm(request.POST or None, instance=template)
インスタンスはModelForm専用のため動作しません。
さて、ModelForm の代わりにクリスピー フォームを使用forms.Form
できますか? ModelForm
これは私がしました
class TemplateCreateForm(ModelForm):
title = forms.CharField(label=(u'Task name'))
description = forms.CharField(label=(u'Task description'))
url_start = forms.CharField(label=(u'Start page url'))
url_end = forms.CharField(label=(u'Final page url'))
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_method = 'post'
self.helper.add_input(Submit('submit', 'Submit'))
super(TemplateCreateForm, self).__init__(*args, **kwargs)
class Meta:
model = Template
exclude = ('user')
ここで Meta クラスを追加しました。今:動作しますが、このように使用するのは正しいですか? 更新もこのように機能します。
更新を行うためにフォームを使用する正しい方法は何ですか?