【发布时间】:2016-09-06 01:59:54
【问题描述】:
如何在 if 条件下访问“值”?还是在 django 模板中不可能?
这是我希望在 django 中实现的示例,但它不起作用。
所以我对这一行“{% if field.data == value %}”有问题如何将“值”从“for循环”传递到if条件?
什么是最好的解决方案?
template file
{% for field in form1 %}
<div class="row pad-col i-l">
{{ field.errors }}
<div class="col-sm-5 text-right">
<label for="{{ field.id_for_label }}">
{{ field.label }}
</label>
</div>
{% if field|field_type == 'Select' %}
<div class="col-sm-7 a-select">
<div class="a-m">
<select class="selectpicker add-i" id="{{ field.id_for_label }}" data-live-search="true" name="{{ field.name }}" tabindex="-98">
{% for value, key in field.field.choices %}
{% if field.data == value %}
<option value="{{ value }}" selected>{{ key }}</option>
{% else %}
<option value="{{ value }}">{{ key }}</option>
{% endif %}
{% endfor %}
</select>
</div>
</div>
{% else %}
<div class="col-sm-7">
{{ field }}
</div>
{% endif %}
</div>
{% endfor %}
views.py file
def add_item(request):
form1 = AddForm()
if request.method == 'POST':
form1 = AddForm(data=request.POST)
if form1.is_valid():
form1.save()
return HttpResponse('good')
return render(request, 'add_item.html', {'form1': form1})
对不起各位。我自己解决了。当您可以添加 "widget=forms.Select(attrs={'class': 'selectpicker add-i', 'data-live-search': 'true'})" 到 forms.py 文件中的表单字段,所有验证都正常工作。
而不是这样:
<select class="selectpicker add-i" id="{{ field.id_for_label }}" data-live-search="true" name="{{ field.name }}" tabindex="-98">
{% for value, key in field.field.choices %}
{% if field.data == value %}
<option value="{{ value }}" selected>{{ key }}</option>
{% else %}
<option value="{{ value }}">{{ key }}</option>
{% endif %}
{% endfor %}
</select>
你只要写这个:
{{ field }}
【问题讨论】: