これらについて考えてみてください: ここに関数があります。
def calculate(model):
model.tempfield = 1
この関数はこのモデルに一時フィールドを保存し、どこでも model.tempfield を使用できますが、クエリセットの場合、order_by の後、これらの一時フィールドは失われます
queryset でこれらの一時フィールドを order_by する方法は?
私は2つのモデルを持っています:
Class A(models.Model):
name = models.CharField(maxlength=100)
Class Log_Of_A(models.Model):
clicks = models.IntegerField()
a = models.ForeignKey(A)
date = models.DateField(db_index=True)
日付ごとにAのログを計算します
def createlog(request):
start = request.GET.get("start")
end = request.GET.get("end")
all_A = A.objects.all()
for a in all_A:
logs=Log_Of_A.objects.filter(a=a,date__gt=start,date__lt=end)
statistics = logs.aggregate(Sum("clicks"))
a.clicks = statistics["clicks__sum"]
all_A.order_by("clicks")
return all_A
order_by一時フィールドの方法