视图中的Django筛选

2024-04-18 07:50:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个基本的应用程序,我被困在一个显示一些信息的地方。 请看一下:

型号:

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记录


Tags: nameselfanmodelmodelsdefnowcompany
1条回答
网友
1楼 · 发布于 2024-04-18 07:50:19

你不能在模板里这么做。在视图中执行整个操作:

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

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

相关问题 更多 >