は、私はクライアントが注文した服の総量を表示することができますクエリを、確認する必要があり、その結果は次のようにする必要があります:DjangoのORMクエリまたは生のSQLクエリ
Client_1 | Cloth_Type_X_SUM | Cloth_Type_Y_SUM | Cloth_Type_Z_SUM | SUM_ALL Client_2 | Cloth_Type_X_SUM | Cloth_Type_Y_SUM | Cloth_Type_Z_SUM | SUM_ALL Client_3 | Cloth_Type_X_SUM | Cloth_Type_Y_SUM | Cloth_Type_Z_SUM | SUM_ALL
models.py
class Cloth(models.Model):
description = models.CharField(max_length=30)
type = models.CharField(max_length=2)
class Order(models.Model):
client = models.ForeignKey(Client, on_delete=models.CASCADE)
date = models.DateTimeField(auto_now_add=True)
class Order_Detail(models.Model):
order = models.ForeignKey(Order, on_delete=models.CASCADE)
cloth = models.ForeignKey(Cloth, on_delete=models.CASCADE)
weight = models.FloatField()
は、私が得たものに最も近いました:
Order_Detail.objects.values('order__client__name','cloth__type').annotate(Sum('weight'))
これに伴う問題は、それが各布タイプのためのオブジェクトを取得するということです。
Client_1 | Cloth_Type_X | SUM_X
Client_1 | Cloth_Type_Y | SUM_Y
Client_1 | Cloth_Type_Z | SUM_Z
Client_2 | Cloth_Type_X | SUM_X
Client_2 | Cloth_Type_Y | SUM_Y
Client_2 | Cloth_Type_Z | SUM_Z
Client_3 | Cloth_Type_X | SUM_X
Client_3 | Cloth_Type_Y | SUM_Y
Client_3 | Cloth_Type_Z | SUM_Z
良いアプローチはありませんか?
あなたがクライアントによって重量・グループを取得しようとしているその目的のために
Conditional Expressions
を使用することができますか? –はい、合計重量だけでなく、各布タイプの重量の合計です。 – victim