【发布时间】:2019-04-04 02:13:31
【问题描述】:
Wagtail Form Builder 文档指出:
form_page.html 与标准 Wagtail 模板的不同之处在于它是 传递了一个变量
form,其中包含一个Django Form对象,另外 到通常的page变量。
但在我当前的项目中,我需要在另一个页面中嵌入一个联系表单(实现为表单生成器页面)。在该目标页面的模型中,我使用 PageChooserPanel 让编辑器选择要嵌入的表单页面。换句话说:
class TargetPage(Page):
[...snip...]
contact_form = models.ForeignKey(
'wagtailcore.Page',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+',
)
content_panels = Page.content_panels + [
[...snip...]
PageChooserPanel('contact_form', 'FormPage'),
]
我的问题出在目标页面的模板中。我可以通过page.contact_form 访问表单页面的属性,但是由于此页面没有传入form 对象,我无法弄清楚如何呈现我的字段。
我猜我需要覆盖目标页面的 get_context() 以便它包含我需要的 form 对象。但我不知道如何获得该对象。有什么好心人能让我走上正轨吗?
【问题讨论】: