используйте Crispy форму с 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.

Теперь я могу заменитьforms.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 класс. Теперь: это работает, но правильно ли использовать это так? Обновление также работает таким образом.

Как правильно использовать формы для обновления?

Ответы на вопрос(1)

Ваш ответ на вопрос