首页 > 解决方案 > 如何在 wagtail cms 2.13.x 中呈现 FieldBlock?

问题描述

从 Wagtail 2.13.x 开始,从 FieldBlock 中删除了 render_form 方法(大多数默认块继承的块,例如 CharBlock、TextBlock 等)

这些块是如何使用 Wagtail 2.13.x 呈现的?

渲染块的测试如下:

def test_form_render(self):
    block = FormChooserBlock()

    test_form_html = block.render_form(self.form, "form")
    expected_html = "\n".join(
        [
            '<select name="form" placeholder="" id="form">',
            '<option value="">---------</option>',
            '<option value="%s" selected>Basic Form</option>' % self.form.id,
            "</select>",
        ]
    )
    self.assertInHTML(expected_html, test_form_html)

显然,当升级到 wagtail 2.13.x 时,这个测试会中断,因为 render_form 方法不再是 block 的属性。

标签: djangowagtailwagtail-admin

解决方案


呈现表单现在完全在客户端 Javascript 中处理。render_form 方法不会有直接的等价物。因此,不再需要此测试。您基本上是在测试 Wagtail 自己的功能。


推荐阅读