如何为表单创建自定义的“as_table()”方法?

神奇的鱼

我有一个相对复杂的表单,它在我的网站上的多个地方使用(实际上,它是许多其他表单类继承的表单)。在模板中,这种形式的继承部分总是采用相同的格式——但这种格式涉及到某种程度;每个字段都在模板中手动呈现和定位。

这意味着显示此表单的每个模板都有许多相同的 HTML 标记,可以适当地呈现表单。

我想创建一个可以调用的自定义输出,类似于as_table()方法。我知道,一个可以覆盖normal_rowerror_row等属性,但这种形式的格式超越了(例如,三窗体的五个领域的应打印并排侧,附合称)。我见过的所有教程/已回答的问题要么是指覆盖上述属性,要么是提供有关如何手动呈现表单的说明。

最初,我是这样想的:

Class StrangeForm(form.Forms):
....
    def as_table_custom():
        html_string = "\
           <tr><td>Title 1:</td><td>self.fields['field1']</td><tr>\
           <tr><td>Title 2:</td><td>self.fields['field2']</td><tr>\
           <tr><td>Titles 3, 4, 5:</td><td>self.fields['field3']\
           </td><td>self.fields['field4']</td><td>self.fields['field5']</td></tr>\
        "
    return html_string

但是,在阅读Django 的 forms.py 文件_html_output()as_table()方法之后,它看起来并不那么容易。如果我从头开始写这个,必须以某种方式解释错误、帮助文本等。我​​想。

是否有一种简单的方法可以覆盖某些内容,以便可以像上面那样定义表单的 HTML 输出?或者我必须从头开始重新编写东西。如果是后者,我如何解释我需要解释的所有事情?

迪克格罗滕

我不会采取这种方法。您最好在 HTML 模板中创建表单,该模板包含在您想要以这种方式显示表单的各种模板中。

因此,创建一个 my_strange_form.html 模板,您假设在上下文中传递了一个具有正确数量的字段的“表单”对象。在该模板中,只需使用{{ field.label_tag }}和 之类的东西创建 HTML {{ field }}您可以使用 a 循环遍历字段,{% for field in form %}并使用 来检查循环的计数器{{ forloop.counter }}我预见了很多{% if forloop.counter... %}语句来生成组合行,它看起来很难看,但你只需要看一次:-)

然后在您的主模板中{% include 'my_strange_form.html' with form=form %}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular2模板驱动的表单:如何为自定义表单控件创建字段验证?

来自分类Dev

symfony 2创建自定义表单如何获取表单自定义元素?

来自分类Dev

如何为剃刀创建自定义标签助手?

来自分类Dev

如何为特定控件创建自己的自定义提示?

来自分类Dev

如何为反应性扩展创建自定义扩展

来自分类Dev

如何为ListView创建自定义视图?

来自分类Dev

如何为Google Form创建自定义主题?

来自分类Dev

如何为runit创建自定义重启脚本?

来自分类Dev

如何为特定类型创建自定义实现?

来自分类Dev

如何为Orchard Layout创建自定义容器元素?

来自分类Dev

如何为Firebase创建自定义用户属性?

来自分类Dev

如何为图像创建自定义管道?

来自分类Dev

如何为appcelertor创建自定义LaunchScreen

来自分类Dev

如何为VS代码创建自定义终端命令

来自分类Dev

如何为Catboost创建自定义评估指标?

来自分类Dev

如何为Adobe Brackets创建自定义安装程序

来自分类Dev

如何为自定义视图创建缩放动画效果

来自分类Dev

如何为操作栏创建自定义图标?

来自分类Dev

如何为UIBarButton创建自定义图标?

来自分类Dev

如何为特定类型创建自定义实现?

来自分类Dev

如何为反应性扩展创建自定义扩展

来自分类Dev

如何为Runit创建自定义重启脚本?

来自分类Dev

如何为程序创建自定义启动屏幕?

来自分类Dev

如何为OSX创建自定义语言

来自分类Dev

如何为Orchard Layout创建自定义容器元素?

来自分类Dev

如何为我的改革表格创建自定义强制?

来自分类Dev

如何为Linux创建自定义键盘布局?

来自分类Dev

如何为模板控件创建自定义属性

来自分类Dev

如何为我的财产创建自定义事件

Related 相关文章

热门标签

归档