2014-04-22 61 views
0

我正在研究一個基本的應用程序,我堅持顯示一些信息。 請看看:Django - 在視圖中過濾

型號:

class Companies(models.Model): 

    name = models.CharField() 
    address = models.CharField() 

    def __unicode__(self): 
     return self.name 


class Payments(models.Model): 

    company = models.ForeignKey(Companies)  
    year = models.CharField(choices=YEAR)  
    month = models.CharField(choices=MONTHS)  
    date = models.DateField(auto_now_add=True) 

我想在其中只顯示沒有支付月租費的企業視圖。

所以I`ve開始是這樣的:

def checks(request):  
    i = datetime.datetime.now()  
    an_c = i.strftime('%Y')  
    comp = Companies.objects.all()  
    pay1 = Payments.objects.filter(an=an_c, month='01') 

但在模板中,我不知道如何篩選「補償」名單。 我想在模板中顯示所有來自「comp」的記錄,不同之處在於可以在「pay1.company」中找到的id/pk。

回答

2

您不會在模板中這樣做。做這件事的看法:

pay1 = Payments.objects.filter(an=an_c, month='01') 
comp = Companies.objects.exclude(payments__in=pay1) 

(樣式注意:Django的模型類通常爲單數,不是複數命名)