如何访问"价值"如果有条件?或者在django模板中不可能?
以下是我想在django中实现的例子,但它不起作用。
所以我对这一行有问题" {%if field.data == value%}"如何通过"价值"来自" for cycle"如果有条件?
最佳解决方案是什么?
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})
对不起伙计们。我只是自己解决了。当您只需添加&#34; widget = forms.Select(attrs = {&#39; class&#39;:&#39; selectpicker add-)时,自定义表单形式真的很愚蠢。我&#39;,&#39;数据实时搜索&#39;真实&#39;}) &#34;到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 }}
答案 0 :(得分:1)
我认为你应该只为迭代分配一个控制变量,然后调用它上面的字段(假设&#34;值&#34;和&#34;键&#34;是字段选择的一部分),像这样:
{% for vfield in field.field.choices %}
{% if field.data == value %}
<option value="{{ vfield.value }}" selected>{{ vfield.key }}</option>
{% else %}
<option value="{{ vfield.value }}">{{ vfield.key }}</option>
{% endif %}
{% endfor %}