问题描述
从 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 自己的功能。