2017-06-20 19 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() 

我的目標是在模板中總屬於屬於特定客戶端的文檔的所有值的打印。要做到這一點,我想添加一個calc_total方法到我的Client模型。

我嘗試以下,但它不工作:

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)