通用视图为我节省了大量代码,但我仍然需要编写每个模型的模板。我在所有模板中都有相同的代码,即
<form action="/{{type}}/{{ action }}/" method="post" enctype="multipart/form-data" >
{% csrf_token %}
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }}: {{ field }}
</div>
{% endfor %}
<p><input type="submit" value="Submit" /></p>
</form>
即基本上我想要从模型中添加或编辑所有字段。
是否有任何解决方案可以自动生成通用模板
答案 0 :(得分:1)
如果您的模板代码相同,则可以使用include tag:
{% include "foo/bar.html" %}
可以使用变量修改包含的代码:
{% include "name_snippet.html" with person="Jane" %}
即使每个模板的代码不同(我认为你的例子是关于具有不同字段的表单,不确定),你仍然可以使用包含 - 只需要两个块:
{% include "startform.html with some_action="post" %}
{{ field.errors }}
{{ field.label_tag }}: {{ field }}
{{ field.field2_tag }}: {{ field2 }}
{% include "endform.html %}
还有template inheritance,您可以在其中定义基本模板,并从中继承所有其他模板。继承是基于块的,您可以使用子模板中的新代码覆盖父模板中的块。它运作得很好。
答案 1 :(得分:0)
答案 2 :(得分:0)
查看ModelForm helper app。它将从任何模型制作一个表单,然后可以在一个简单的表单模板中使用。