在 python 中通过 django-crispy-forms 渲染表单

Posted

技术标签:

【中文标题】在 python 中通过 django-crispy-forms 渲染表单【英文标题】:Rendering forms through django-crispy-forms in python 【发布时间】:2012-06-29 10:38:19 【问题描述】:

我们需要在 python 中渲染表单并捕获 html 输出。到目前为止,我们使用的是肮脏的 hack:

defcrispy_page(表格): 迷你模板 = """ % 加载crispy_forms_tags % % 酥脆形式 % """ 从 django.template 导入模板,上下文 t = 模板(mini_template) c = 上下文(“表格”:表格) 返回 t.render(c)

我们希望能够以某种方式直接从酥脆的表单中获取渲染输出,而不必跳过 django 模板系统。有什么想法吗?

【问题讨论】:

你有帮手吗?你有布局吗?究竟是什么用例?如果我可以问,为什么你需要 Python 中的 HTML,可能有更好的方法来自定义输出。 我确实有一个助手和一个布局。用例是双重的。 1)我想测试表单html输出。 2)我想让一个表单包含一个子表单。因此,在python中,我想将子表单渲染为html,然后将该html注入到子表单字段所在的容器表单中。 【参考方案1】:

These are the lines 节点中的% crispy % 标记用于呈现带有助手+布局的表单。我可以将它们重构出来,以便它们很容易从外部调用。该应用程序不被认为是用于服务器端的,这就是它如此死板的原因。

据我了解,你有一个表单 A 的一些字段,然后是另一个表单 B 的字段,然后是更多表单 A 的字段,对吗?

编辑 2012/7/30

版本 1.2.0 将附带一个 render_crispy_form 函数来解决您的问题: https://github.com/maraujop/django-crispy-forms/issues/64#issuecomment-7354910

【讨论】:

以上是关于在 python 中通过 django-crispy-forms 渲染表单的主要内容,如果未能解决你的问题,请参考以下文章

python 在python中通过套接字接收消息

python 在python中通过套接字发送消息

在python中通过引用传递引用

如何在python中通过引用调用静态方法[重复]

在 Netezza 服务器中通过 R/Python 进行机器学习

在当前进程中通过 python 运行 bat 文件