【发布时间】:2017-02-07 21:25:09
【问题描述】:
我正在使用Wagtail Form Builder,以便站点实施者可以扩展以使用自己的站点特定模板创建自己的 FormPage 类型。
我想在父页面上呈现所有表单页面;这包括所有子页面字段,例如标题,以及完整的子表单。
理想情况下,提交按钮也应该在每个表单的基础上起作用。
这是我尝试过的:
<ul>
{% for child in page.get_children %}
<li>
<h5 class=>{{ child.specific.title }}</h5>
<div>
{{ child.specific.intro|richtext }}
<div id="form-holder">
<form action="{% child.pageurl page %}" method="POST">
{% csrf_token %}
{{ child.specific.form.as_p }}
<input type="submit">
</form>
</div><!-- contact-form-holder-->
</div>
</li>
{% endfor %}
</ul>
我的表单模型或多或少符合Form Builder 文档的一些额外字段:
class FormField(AbstractFormField):
db_table = 'form_field'
page = ParentalKey('FormPage', related_name='form_fields')
class FormPage(AbstractEmailForm):
db_table = 'form_page'
header = models.CharField(max_length=250)
intro = RichTextField(blank=True)
thank_you_text = RichTextField(blank=True)
content_panels = AbstractEmailForm.content_panels + [
FormSubmissionsPanel(),
FieldPanel('intro', classname="full"),
FieldPanel('header'),
InlinePanel('form_fields', label="Form fields"),
FieldPanel('thank_you_text', classname="full"),
MultiFieldPanel([
FieldRowPanel([
FieldPanel('from_address', classname="col6"),
FieldPanel('to_address', classname="col6"),
]),
FieldPanel('subject'),
], "Email"),
]
我发现如果我使用.specific方法,我可以渲染标题和介绍等子页面字段。
但是,我似乎无法渲染任何表单;有或没有.specific 标签。
非常欢迎任何帮助!
【问题讨论】:
-
这里有一个非常相似的问题的答案:stackoverflow.com/questions/42673180/…