utilizar la forma crujiente con ModelForm
Me he estado topandoforma crujiente, y parece hacer exactamente lo que quiero: renderizar formularios con diseño bootstrap.
Ahora, el ejemplo habla de usarforms.Form
. Esto está bien, puedo crear el mío escribiendo el código así:
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)
Pero, ¿cómo hacer la actualización? Porque si pongo esto en la vista:
form = TemplateCreateForm(request.POST or None, instance=template)
no funciona porqueLa instancia es solo para ModelForm.
Ahora, ¿puedo sustituir elforms.Form
conModelForm
y utilizar forma crujiente para ModelForm? hice esto
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')
Aquí agregué la clase Meta. Ahora: funciona, pero ¿es correcto usarlo así? La actualización funciona también de esta manera.
¿Cuál es la forma correcta de usar formularios para hacer la actualización?