我一直在運行到crispy form,它似乎正是我想要的:使用引導佈局呈現表單。使用ModelForm的脆皮形式
現在,該示例討論使用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。
現在,我可以替代model.Form
與ModelForm
和使用香脆形式的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類。 現在:它的工作原理,但是像這樣使用它是正確的嗎? 更新也以這種方式工作。
什麼是使用表單進行更新的正確方法?
做什麼我做與的ModelForm使用它呢? – EsseTi
我編輯了答案。 – maraujop
@maraujop:請看看這個問題:http://stackoverflow.com/questions/16581057/formhelper-object-has-no-attribute-append-while-using-crispy-forms-in-django 這當我在做這裏所說的話時,問題就出現了。 –