使用模板渲染django小部件?

时间:2012-08-09 02:40:36

标签: django django-forms

我非常喜欢在django中使用modelforms来加速UI的能力。 IE:

<html>
    ...
    {{ myform }}
    ...
</html>

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我通常使用include标记。我创建了一个自定义模板(form_snippet.html)。

为了论证,让我们说form_snippet.html只打印表单:

<!-- Form snippet -->
{{ form }}

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

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

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