使用模板渲染 django 小部件?

Posted

技术标签:

【中文标题】使用模板渲染 django 小部件?【英文标题】:Render django widget using template? 【发布时间】:2012-08-06 05:50:37 【问题描述】:

我真的很喜欢在 django 中使用模型表单来加速 UI 的能力。即:

<html>
    ...
     myform 
    ...
</html>

但是,我需要创建的 HTML 输出与默认创建的不匹配。我无法更改所需的 HTML 输出,但我想更改表单的输出。

我知道有几种方法可以做到这一点。循环遍历字段并单独显示每个字段(即循环显示 myform.field )可以正常工作,但不如仅执行 myform 好。小部件似乎是个好主意,但在查看了文档和一些示例之后,我不太确定 - 我只想更改 html 输出,而不是功能。如果有某种方法可以基于模板输出字段,那就太好了。

有什么想法吗?

【问题讨论】:

【参考方案1】:

我通常使用include 标签。我创建了一个自定义模板 (form_sn-p.html)。

为了论证,假设 form_sn-p.html 只是打印表单:

<!-- Form snippet -->
 form 

然后,当您想在其他模板中使用该表单模板时,您只需使用:

% include 'form_snippet.html' with form=myform %

您可以简单地遍历字段并添加您的自定义标记。

【讨论】:

好主意,谢谢。除此之外,我需要区分不同的字段类型 - 这:***.com/questions/1809874/… 对我来说效果很好。 太棒了!一些关于死的简单模板过滤器的东西让我微笑。

以上是关于使用模板渲染 django 小部件?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Django 模板变量填充 jQuery Datepicker 小部件?

覆盖 Django 小部件默认模板

Django:Timefield小部件没有显示在模板中

以自定义形式使用 Django 时间/日期小部件

子部件在 Dojo 中不会渲染(高度为 0)

Django 小部件和日期字段