如何从django中的日期字段过滤年份

时间:2021-01-09 10:21:56

标签: django chart.js django-filters

基本上我想使用'chartjs'来显示“簇状条形图”,以下是每年明智的事情

总金额 收到的金额 剩余金额

我想从数据库中获取数据并将其显示在图表上,我已将每个日期的上述所有字段 3 字段的数据保存在一个表中,我还想从日期字段中获取年份。

主要是如何通过从数据库中获取每年的数据来显示簇状条形图。


class Allinvoice(models.Model):
    company_choice = (
        ('VT_India', 'VT_India'),
        ('VT_USA', 'VT_USA'),
    )
    company = models.CharField(
        max_length=30, blank=True, null=True, choices=company_choice)
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
    project = models.ForeignKey(Allproject, on_delete=models.CASCADE)

    invoice_title = models.CharField(max_length=15)

    invoice_id = models.IntegerField(primary_key=True)
    currency = models.ForeignKey(Currency, on_delete=models.CASCADE)
    invoice_amount = models.IntegerField()
    invoice_date = models.DateField(
        blank=True, null=True)
    invoice_duedate = models.DateField(
        blank=True, null=True)

    invoice_description = models.TextField()

    def __str__(self):
        return str(self.invoice_id)

class Paymentdete(models.Model):
    payment_id = models.IntegerField(primary_key=True)
    invoice = models.ForeignKey(
        Allinvoice, on_delete=models.CASCADE)
    total_amount = models.IntegerField()
    amountreceived = models.IntegerField()
    amount_left = models.IntegerField()
    currency = models.ForeignKey(Currency, on_delete=models.CASCADE, null=True)
    date = models.DateField(
        blank=True, null=True)
    paymentmethod = models.ForeignKey(
        Allpaymentmethod, on_delete=models.CASCADE)

    def __str__(self):
        return str(self.payment_id)


所以,上面是我的 2 个模型的代码。所以,我想每年获得所有数据的总数

2019 年 = 总金额、已收到金额和剩余金额 2020 年 = 总金额、已收到金额和剩余金额 ...等等...

所有年份的聚类条形图

1 个答案:

答案 0 :(得分:0)

您对名为 date 的字段执行此操作:

dates = Paymentdete.objects.filter(date__year='2021')
相关问题