我在我的一个视图中有以下代码。问题是我无法弄清楚如何将它重构为一个for循环。唯一的区别是'项目'。部分。我需要在同一个模板中的所有三个变量值,所以我不认为我可以从urls.py传递信息。任何想法,我可以重写这个,所以我不重复自己?重构此视图代码
谢谢。
def average(request):
cal_list = []
cal_list2 = []
cal_list3 = []
exams = Test.objects.filter(test__test_name__iexact="one")
for item in exams:
cal_list.append(int(item.start))
result = sum(cal_list)/float(165) * 100
result = result/len(cal_list)
result = int(round(result))
result = str(result) + '%'
for item in exams:
cal_list2.append(int(item.s1))
result2 = sum(cal_list2)/float(165) * 100
result2 = result2/len(cal_list2)
result2 = int(round(result2))
result2 = str(result2) + '%'
for item in exams:
cal_list3.append(int(item.s2))
result3 = sum(cal_list3)/float(165) * 100
result3 = result3/len(cal_list3)
result3 = int(round(result3))
result3 = str(result3) + '%'
return direct_to_template(request, 'a.html', {'result': result, 'result2': result2, 'result3': result3})
Thanks @Nathan。我的工作很好,我应该能够重复使用这个概念进行类似的计算。 –
不客气。 :) –