usar forma crocante com ModelForm
Eu estive correndo emforma crocante, e parece fazer exatamente o que eu quero: renderizar formulários com layout de bootstrap.
Agora, o exemplo fala sobre o usoforms.Form
. Tudo bem, eu posso criar o meu escrevendo o código assim:
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)
Mas, como fazer a atualização? porque se eu colocar isso na visão:
form = TemplateCreateForm(request.POST or None, instance=template)
não funciona porqueinstância é apenas para ModelForm.
Agora, posso substituir oforms.Form
comModelForm
e usar forma crocante para ModelForm? eu fiz isso
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')
Aqui eu adicionei a classe Meta. Agora: funciona, mas é correto usá-lo assim? A atualização também funciona dessa maneira.
Qual é a maneira correta de usar formulários para fazer a atualização?