在 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 方法不再是块的属性

解决方法

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