python – Django Crispy形式分割字段布局
我们有一个脆弱的表单,我们希望能够在我们的表单 HTML模板的不同部分中呈现不同的字段,但是我们无法在 Crispy Documentation中找到一种这样做的方式.以下是一些稍微补充的代码来说明什么我们正在努力做: forms.py helper = FormHelper() helper.layout_1 = Layout( Div( Field('field_1a'),Field('field_1b') ) ) helper.layout_2 = Layout( Div( Field('field_2a'),Field('field_2b') ) ) template.html <body> {% crispy form layout_1 %} <!-- A big bunch of other html --> {% crispy form layout_2 %} </body> 有没有人知道一个干净的方式实现这一点? 我们迄今为止所看到的方法不得不排除: >我们可以在我们的HTML中手动添加字段,而不是为我们提供脆弱的字段.然而,这看起来是一个不要走,因为我们有一些选择字段,其选项是以编程方式确定的. 解决方法更新:这不适用于forms.ModelForm尝试创建两个帮助程序,而不是两个布局,然后显式调用单独的帮助程序.这样做就必须手动写< form>标签将这两个表单包含在您的模板中,但希望提供您需要的解决方案. forms.py class Form(forms.Form): field_1a = forms.CharField() field_1b = forms.CharField() field_2a = forms.CharField() field_2b = forms.CharField() def __init__(self,*args,**kwargs): super(Form,self).__init__(*args,**kwargs) helper1 = FormHelper() helper1.form_tag = False helper1.layout = Layout( Div( Field('field_1a'),Field('field_1b') ) ) helper2 = FormHelper() helper2.form_tag = False helper2.disable_csrf = True helper2.layout = Layout( Div( Field('field_2a'),Field('field_2b') ) ) 然后在你的模板中: <body> <form> {% crispy form form.helper1 %} <!-- A big bunch of other html --> {% crispy form form.helper2 %} </form> </body> (编辑:阜阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |