【发布时间】:2019-07-21 12:56:07
【问题描述】:
假设我有一个包含一些字段的表单。其中一些字段是测量单位:
['quantity_units', 'weight_units', 'dimension_units']
我也有这些字段:
['quantity', 'weight', 'dimension']
我想在字段旁边显示测量单位:
Quantity: ___________________ _______<unit of measurement drop-down list>______
我认为我应该首先遍历表单的字段。对于表单字段的每次迭代,我会检查字段名称是否在 units_list 中,如果是,那么我将呈现该字段及其单位字段,如下所示:
{% for field in form %}
{% for field_name in units_fields %}
{% if field.name in field_name %}
{{ field|add_class:"site-form-control" }} {{ form.field_name}}
{% else %}
{% ifchanged %}
{{ field|add_class:"site-form-control" }}
{% endifchanged %}
{% endif %}
{% endfor %}
{% endfor %}
这不会使用下拉列表小部件呈现测量单位字段。
任何想法如何解决这个问题?
编辑:
我注意到由于某种原因,Django 显示了两次{{ field }},但没有显示{{ form.field_name }}。为了手动选择字段,我编写了一个模板过滤器来获取给定字典键的值。然后,我在 {{ form.fields }} 这是一个orderedDict
{% for field_name in units_fields %}
{% if field.name in field_name %}
{{ form.fields|dict_key:field_name }}
{% else %}
{% ifchanged %}
{{ field|add_class:"site-form-control" }}
{% endifchanged %}
{% endif %}
{% endfor %}
这会呈现我想要的字段的文本表示:
<django.forms.fields.ChoiceField object at 0x000001E5F35F3C18>
感谢您将此文本转换为实际字段的任何帮助
【问题讨论】:
标签: django django-forms