2017-06-20 7 views
0
私は次のモデルを持っている

集計値以下の関係

class Client(models.Model): 
    ... 

class Document(models.Model): 
    client = models.ForeignKey(Client, related_name='clients') 
    ... 

class MainVoiceActual(models.Model): 
    doc = models.ForeignKey(Document, related_name='documents') 
    value = models.IntegerField() 

私の目標は、テンプレート内の特定のクライアントに属する文書に属するすべての値の合計を印刷することです。これを行うには、Clientモデルにcalc_totalメソッドを追加します。

私は次のことを試してみましたが、それは動作しません:

class Client(models.Model): 
    name = models.CharField(max_length=150) 

    def calc_total(self): 
     docs = Document.objects.filter(client=self) 

     return sum(doc.mainvoiceactuals_set.value for doc in docs) 

私はそれがで'Document' object has no attribute 'mainvoiceactuals_set'エラー

答えて

0

作業ガットます:

def calc_total(self): 
    voices = MainVoiceActual.objects.filter(doc__client=self) 
    return sum(voice.value for voice in voices)