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

时间:2018-07-07 21:17:55

标签: wagtail wagtail-streamfield

我已经安装了wagtail Streamforms软件包的最新版本和wagtail 2.0,但是当我使用它创建表单时,表单内容没有显示为默认表单模板,并且当我定义自定义模板'streamforms / form_block.html'时表单中未显示的内容。我已经按照文档中的说明在我的base.py设置文件中定义了我正在使用的两个模板。

WAGTAILSTREAMFORMS_FORM_TEMPLATES =(     (“ streamforms / form_block.html”,“默认表单模板”), )

但是在管理面板->我创建表单时,在Streamforms中,在模板选择器字段中它仅显示“默认表单模板”

我已经在streamfields的models.py中定义了它,并为自己定义了模板以显示它仍未呈现的内容 Class StandardPage(Page):

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  %}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

假设您在上方输入的是您的实际设置:

someinfo.img.txt

这只是用来填充表单中可用模板的下拉列表。您所设置的就是设置中的默认设置。如果要覆盖包中的默认模板,只需确保自己代码中位于路径WAGTAILSTREAMFORMS_FORM_TEMPLATES = ( ('streamforms/form_block.html', 'Default Form Template'), ) 上的模板位于streamforms/form_block.html中wagtailstreamforms之前出现的应用中。 Django将首先看到您的模板并进行渲染。

如果要提供其他模板作为默认模板,只需进行以下设置:

INSTALLED_APPS

,仅创建模板“ example / forms / another_form_block.html”,例如位于http://wagtailstreamforms.readthedocs.io/en/latest/templates.html#templates的示例。然后,您将有两种选择的模板可供使用。包装内的一个和您自己的一个。

希望这会有所帮助。