2014-04-22 46 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的模型类通常为单数,不是复数命名)