在 demo.html
中<form method="post">
{{ form1.as_p }}
</form>
<table class="table table-hover" style="width:80%;">
<tr>
<th>Test Case</th>
<th>File Name</th>
<th>Coverage </th>
</tr>
{% for key, value in d.items %}
<tr>
<th>{{ key }} </th>
</tr>
{% for k,v in value.items%}
{% if forloop.counter <= count1 %}
<tr>
<td> </td>
<td>{{ k }}</td>
<td>{{ v }}</td>
</tr>
{% endif %}
{% endfor %}
{% endfor %}
</table>
在 views.py
中class home_changetesting(TemplateView):
template_name = 'demo.html'
def get(self, request):
form1 = SortForm()
return render(request,self.template_name, {'form1':form1})
def post(self, request):
form1 = SortForm(request.POST)
count1=int
if form1.is_valid():
count1= request.POST.get('sort')
print(count1)
args ={'form1':form1,'count1':count1}
return render(request,self.template_name, args)
在 forms.py
中class SortForm(forms.Form):
sort = forms.ChoiceField(choices=[(x, x) for x in range(1, 11)], required=False,widget=forms.Select())
如果条件仅在我声明为 {% if forloop.counter <= 2 %}
时才有效,相反,如果我使用变量作为上述代码,它就不起作用。请帮我解决上面代码中的错误。
好像使用{{ count1 }}
值正确打印。
答案 0 :(得分:2)
args ={'form1':form1,'count1':int(count1)}
使用此
当您接受输入时,这些内容始终为string
,因此在与int
template
>
答案 1 :(得分:1)
您可能正在将count1
字符串传递给模板。要比较它,您需要将其转换为视图中的int或使用添加过滤器:
{% if forloop.counter <= count1|add:"0" %}