在 wagtail 中,Streamforms 不呈现表单的内容

In wagtail , Streamforms is not rendering the content of the form

我已经安装了最新版本的 wagtail Streamforms 包和 wagtail 2.0,但是当我使用它创建表单时,表单内容没有使用默认表单模板显示,当我定义自定义模板时 'streamforms/form_block.html' 仍然未显示的表单内容 up.I 定义了我在 base.py 设置文件中使用的模板,如文档中所述。

WAGTAILSTREAMFORMS_FORM_TEMPLATES = ( ('streamforms/form_block.html', 'Default Form Template'), )

但是在管理面板->Streamforms 中,当我创建表单时,在模板选择器字段中它只显示 "Default Form Template"

我已经在流场中的 models.py 中定义了它,并为自己定义了模板来显示它仍未呈现的内容 class 标准页(页):

class StandardPage(Page):
    introduction = models.TextField(
        help_text='Text to describe the page',
        blank=True)
    image = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+',
        help_text='Landscape mode only; horizontal width between 1000px and 3000px.'
    )
    video_url = models.URLField(
        null=True,
        blank=True
    )
    body = StreamField([
        (
            'main_content',
            blocks.ListBlock(BaseStreamBlock(), label='content')
        ),
        (
            'form',
            blocks.ListBlock(WagtailFormBlock(), label='create form')
        )
    ,],
        blank=True,
        null=True,
        verbose_name="Standard Page"
    )

    content_panels = Page.content_panels + [
        FieldPanel('introduction', classname="full"),
        ImageChooserPanel('image'),
        FieldPanel('video_url'),
        StreamFieldPanel('body'),
    ]

    @property
    def standard_page(self):
        return self.get_parent().specific

这是我的 "Standard_Page.html" 模板

    {% extends "base.html" %}
{% load wagtailcore_tags wagtailtrans_tags streamforms_tags wagtailimages_tags homeapp_tags%}



 {% block content%}


{% include "base/include/header.html" %}
    <div class="container">
{{ page.introduction }}
     {{ page.image }}

        <div class="row">
            <div class="col-md-7">
               {% for block in page.body %}
                {{ block}}
{% endfor %}
            </div>

        </div>
        </div>
{% endblock  %}

我做错了什么?

假设您上面的内容是您的实际设置:

WAGTAILSTREAMFORMS_FORM_TEMPLATES = (
    ('streamforms/form_block.html', 'Default Form Template'),
)

这仅用于填充表单中可用模板的下拉列表。您设置的就是设置中的默认值。如果您想覆盖包中的默认模板,您只需要确保位于您自己代码中路径 streamforms/form_block.html 上的模板位于 INSTALLED_APPS 中出现在 wagtailstreamforms 之前的应用程序中。 Django 将首先看到您的模板并进行渲染。

如果您想为默认模板提供额外的模板,只需进行设置:

WAGTAILSTREAMFORMS_FORM_TEMPLATES = (
    ('streamforms/form_block.html', 'Default Form Template'),
    ('example/forms/another_form_block.html', 'My Custom Template'),
)

然后创建一个模板 'example/forms/another_form_block.html',就像 http://wagtailstreamforms.readthedocs.io/en/latest/templates.html#templates 中的示例一样。然后,您将有两种选择要使用的模板。包装内的和您自己的。

希望对您有所帮助。