簡體   English   中英

Django 僅通過查詢集循環一次

[英]Django for loop looping only once through queryset

我正在做一個項目,但遇到了一個問題。 我正在循環一個查詢集,而 for 循環只運行一次而沒有給出任何錯誤。 這個問題之前沒有發生,但現在它突然出現了。 下面是我的代碼。

視圖.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})

提前感謝您的時間和幫助。

在循環內使用 return 會破壞它並退出方法/函數,即使迭代仍未完成。

因此,除非您知道自己在做什么,否則切勿在循環中使用“return”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM