我想在表单集中手动显示表单。
比如能够做类似 {{ formset.form1 }} 的事情并显示第一个表单。我怎么做?
您可以遍历表单集以获取单个表单,并对这些表单执行任何您想要的操作。
{% for form in formset %}
{{form.title.errors}}
{{form.title.label}}
{{form.title}}
{% endfor %}
对于表单集中的第一个表单,您可以尝试内置过滤器first
:
{{ formset|first }}
Django 模板在设计上受到严重限制,您可能需要检查Jinja2。在 Jinja 中,您应该能够编写:
{{ formset[0] }} {{ formset[3] }}
由于 Django 缺少get_item
过滤器,您可以像这样编写自定义过滤器:
@register.filter
def get_item(ob, key):
try:
return ob[key]
except (TypeError, ValueError, KeyError, IndexError):
return None
使用此过滤器,您应该能够编写:
{{ formset|get_item:0 }} {{ formset|get_item:3 }}