我非常喜欢在django中使用modelforms来加速UI的能力。 IE:
<html>
...
{{ myform }}
...
</html>
但是,我需要创建的HTML输出与默认创建的HTML输出不匹配。我无法更改所需的HTML输出,但我想更改表单的输出。
我知道有几种方法可以做到这一点。循环遍历字段并单独显示每个字段(即循环和显示{{ myform.field }}
)可以正常工作,但它不如仅仅{{ myform }}
那么好。小部件似乎是一个好主意,但在查看了文档&amp;一些例子,我不太确定 - 我只是想改变html输出,而不是功能。如果有某种方法可以根据模板输出字段,那就太好了。
有什么想法吗?
答案 0 :(得分:3)
我通常使用include标记。我创建了一个自定义模板(form_snippet.html)。
为了论证,让我们说form_snippet.html只打印表单:
<!-- Form snippet -->
{{ form }}
然后,当您想在其他模板中使用该表单模板时,您只需使用:
{% include 'form_snippet.html' with form=myform %}
您可以简单地遍历字段并添加自定义标记。