我只想渲染 Django inline_formset 中的字段。
这是我的模板:
<div id="storage">
<h1>Storage</h1>
{% for form in storage_formset %}
<div class="form-group">
<label class="col-sm-2 control-label">{{ form.help_texts }}</label>
<div class="col-sm-10">
{{ form.errors }}
{{ form }}
</div>
</div>
{% endfor %}
</div>
这是我的表格:
help = {'field1' : "help1", 'field2' : "help2"}
StorageFormSet = inlineformset_factory(WorkOrder, Storage, min_num=0,
max_num=2, validate_min=True, validate_max=True, extra=1, help_texts=help,
fields=('field1', 'field2'))
这个可以工作,但是当它渲染时,它会渲染表单中的所有内容(字段和字段名称),而我希望它只渲染字段。另一件事是 help_texts
不起作用(我不知道我是否正确使用了它)。
如果我使用:
{{ form.field1 }}
它渲染了 field1,但我想动态地执行它,所以我不必一次又一次地重复。
如果我使用:
{{ form.fields }}
它呈现一堆代码
OrderedDict(
[('field1', <django.forms.fields.TypedChoiceField object at 0x7f8f6409c890>),
('field2', <django.forms.fields.IntegerField object at 0x7f8f6409c650>),
(u'id', <django.forms.models.ModelChoiceField object at 0x7f8f6409c1d0>),
(u'DELETE', <django.forms.fields.BooleanField object at 0x7f8f6409cc90>),
('parent_field', <django.forms.models.InlineForeignKeyField object at 0x7f8f659c4e10>)])
我不知道还能做什么。
如果你能帮助我,谢谢。
我修改了您的代码以仅呈现字段及其关联的帮助文本:
<div id="storage">
<h1>Storage</h1>
{% for form in storage_formset %}
<div class="form-group">
<label class="col-sm-2 control-label">{{ form.help_texts }}</label>
<div class="col-sm-10">
{{ form.errors }}
{% for field in form %}
{{ field }} {{ field.help_text }}
{% endfor %}
</div>
</div>
{% endfor %}
</div>
有关访问模板中的表单字段的更多信息,请访问 docs .
我是一名优秀的程序员,十分优秀!