我需要在django模板中将div组放在表单字段组中。 最简单的方法就是
MyForm()。as_table()
copypaste,并用适当的div包含一组字段。唯一的问题是,当表单验证中存在错误时,此方法会失败,因为 {{form.fieldname.errors}} 未在任何地方提及。
任何更好的想法或现成的工具都会让我每次都不能手工做这件事吗?
如果有人需要,可以回答
def generate_object_template(object):
from string import Template
for field in object._meta.fields:
t = Template(""" <label>{{ form.$fieldname.label }}{% if form.$fieldname.is_required %}*{% endif %}</label>
{{ form.$fieldname }}
{% if form.$fieldname.errors %} {{ form.$fieldname.errors }}{% endif %}""").substitute(fieldname=field.attname)
print t
答案 0 :(得分:1)
当您必须在Django中自定义表单时,您可以按照以下步骤进行操作
...
<label>{{ form.myfield.label }}{% if form.myfield.is_required %}*{% endif %}</label>
{{ form.myfield }}
{% if form.myfield.errors %} {{ form.myfield.errors }}{% endif %}
<label>{{ form.myfield3.label }}{% if form.myfield3.is_required %}*{% endif %}</label>
{{ form.myfield3 }}
{% if form.myfield3.errors %} {{ form.myfield3.errors }}{% endif %}
<label>{{ form.myfield2.label }}{% if form.myfield2.is_required %}*{% endif %}</label>
{{ form.myfield2 }}
{% if form.myfield2.errors %} {{ form.myfield2.errors }}{% endif %}
...
通过这种设置,您可以自定义表格,在您想要的地方添加div,并且仍然可以进行验证。
请参阅http://docs.djangoproject.com/en/dev/topics/forms/#customizing-the-form-template