相关疑难解决方法(0)

使用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)
Run Code Online (Sandbox Code Playgroud)

但是,如何进行更新?因为如果我把它放在视图中:

    form = TemplateCreateForm(request.POST or None, instance=template)
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为实例仅适用于ModelForm.

现在,我可以用forms.Formwith 替换ModelForm并使用Crispy形式的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): …
Run Code Online (Sandbox Code Playgroud)

django django-models django-forms django-crispy-forms

20
推荐指数
1
解决办法
2万
查看次数