【发布时间】:2021-12-30 10:17:37
【问题描述】:
我正在尝试在每个表格的列中使用清晰的表单字段。我可以使用:
{% load crispy_forms_tags %}
<tr>
<form method="get" class="form-inline justify-content-center">
{% for field in filter.form %}
<th>{{ field|as_crispy_field }}</th>
{% endfor %}
<input class='hidden-submit' type="submit"/>
</form>
</tr>
它看起来像这样,这正是我想要的:
但问题是我用来向表单添加额外参数(如具有占位符等)的 Layout() 不起作用,因为我使用 |as_crispy_field 标记来呈现单个字段。这是我的表单组件:
class CustomFiltersForm(forms.Form):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_show_labels = False
self.helper.form_tag = False
self.helper.layout = Layout(
)
for field_name, field in self.fields.items():
self.helper.layout.append(Field(field_name, placeholder="Search " + field.label))
有没有办法循环遍历{% crispy filter.form %} 或使用易碎的表单填充单个字段的替代方法?比如:
{% for field in {% crispy filter.form%} %}
...
{% endfor %}
【问题讨论】:
-
您可以执行以下操作,并将“th”标签放在布局中 from crispy_forms.layout import HTML for field_name, field in self.fields.items(): self.helper.layout。 append(HTML("
")) self.helper.layout.append(Field(field_name, placeholder="Search " + field.label)) self.helper.layout.append(HTML(" " )) -
我确实尝试过,但这会在
标记内生成表单,并在表格外生成表单字段。我应该提到我正在使用 django-tables2 来填充表格。
标签: python django django-templates django-crispy-forms