Django - 在视图中过滤

时间:2014-04-22 12:53:19

标签: python sql django django-views

我正在开发一个基本的应用程序,而且我坚持要显示一些信息。 请看一下:

型号:

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)

我想要一个只显示未支付月费的公司的视图。

所以我开始这样:

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"名单。 我想在模板中显示来自" comp"的所有记录。除了可以在" pay1.company"中找到的id / pk。

1 个答案:

答案 0 :(得分:2)

你不会在模板中这样做。在视图中完成整个事情:

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

(样式注释:Django模型类通常以单数形式命名,而不是复数形式。)