2

我正在使用表单集在一个页面上收集多个表单的数据,但我意识到表单集的 .as_table 显示对于我正在尝试做的事情来说不是最理想的,而不是将每个表单元素打印为新的表行我正在考虑将每个表单本身打印为单独的行,并有一个带有字段名称的表头,因为我知道我的表单集对于每个表单实例都有相同的字段。通过这种方式,您可以获得一个用户可以填写的数据网格。我已经通过打印表单的模板手动完成了它,但我想知道是否有任何方法可以覆盖 formset.as_table 以在其中打印它形式而不是目前完成的方式。这可能吗,是否已经在某个地方完成了,或者如果没有,你会建议我怎么做?

4

2 回答 2

2

您始终可以创建自己的 Formset(也可能是 Form)子类,该子类会覆盖该as_table方法以任何您想要的方式输出表单。

不过,我的建议是考虑使用django-crispy-forms和良好的 CSS 定义。

于 2012-11-04T19:27:42.720 回答
0

在您用于表单集的类(而不是使用表单集的类)中覆盖 as_table。Super() 把 as_table 变成一个变量。将其转换为字符串,然后进行 repr。将“\n”替换为空字符串。删除 repr 开头和结尾的引号。将其转换为字符串。调用 django 框架的 mark_safe 方法到结果字符串,并返回它。

于 2019-07-25T19:18:34.010 回答