Django for循环循环仅一次通过queryset

2024-10-03 13:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个项目,遇到了一个问题。我在一个queryset中循环,for循环只运行了一次,没有给出任何错误。这个问题以前没有发生,但现在不知从哪里冒出来了。下面是我的代码

views.py

ward = Student.objects.get(id = request.POST.get('ward'))
request.session['student'] = request.POST.get('ward')
fees = Fee.objects.get(classes = ward.classes)
extras = ExtraFee.objects.filter(student = ward)
ex = ExtraFee.objects.filter(student = ward).values('title').annotate(Count('title'))
print(ex)
for e in ex:
    print(e)
    title = e['title']
    if e['title__count'] > 1:
       print(title)
       extra = ExtraFee.objects.filter(title = e['title'], student = ward)
       amount = 0
       fine = 0
       for ex in extra:
         amount = int(ex.amount) + amount
         total = amount
       for exs in extras:
         fine = int(exs.amount) + fine
         totalfine = fine
         return render(request, "dashboard/parent_fees.html", {"students": students, "parent": parent, "ward": ward, "fees": fees, "extras": extras, "totalfine": totalfine, "total": total, "title": title})
    else:
      fine = 0
      for e in extras:
         fine = int(e.amount) + fine
         totalfine = fine
         return render(request, "dashboard/parent_fees.html", {"students": students, "parent": parent, "ward": ward, "fees": fees, "extras": extras, "totalfine": totalfine})

提前感谢您的时间和帮助


Tags: inextrasforgetobjectstitlerequestamount
1条回答
网友
1楼 · 发布于 2024-10-03 13:29:01

在循环中使用一个返回,即使迭代还没有完成,也会打断它并退出方法/函数

因此,除非您知道自己在做什么,否则不要在循环中使用“return”

相关问题 更多 >