数ヶ月前に前後に転送されないので、それも、データベース内のユーザーオブジェクトの数が多いと効率的に動作するはずです、以下のようなスクリプトのような、今年の平均トランザクションを見つけるために似たような問題がありました。うまくいけば助けることができます..
import time
from django import template
from yourapp.models import Transaction
register = template.Library()
now_year = time.strftime("%Y")
@register.simple_tag
def graph_average_income_by_year():
try:
transactions = Transaction.objects.filter(paid=True)\
.filter(payment_date__year=now_year)
count_transactions = transactions.count()
incomes = [ p.total_transfer for p in transactions ]
return ("%.1f" % (float(sum(incomes))/count_transactions))
except:
return 0.0
ゼロ除算に注意してください!あなたのスニペットはこのエラーをキャッチしません。 – Wilfried
右、スニペットを更新します。これは起こらないはずですが、average_scoreはUserオブジェクトから来ているので、データベースには少なくとも1つのオブジェクトがあります。 –
http://stackoverflow.com/questions/11360858/what-is-the-eafp-principle-in-pythonちょうどEAFPのprincipeについてのSO投稿。サンカの答えに使用されます。より多くのpytonic。 – Wilfried