在 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 渲染表单的主要内容,如果未能解决你的问题,请参考以下文章