Django queryset带额外fi

2024-04-28 00:09:12 发布

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

我的模型.py具体如下:

class Prescription(models.Model):
    date_prescribed = models.DateTimeField()
    doctor = models.ForeignKey(Doctor)  
    pharmacy = models.ForeignKey(Pharmacy)

class Doctor(models.Model):
    name = models.CharField(max_length=150)  
    age = models.PositiveSmallIntegerField()

class Pharmacy(models.Model):
    name = models.CharField(max_length=150)
    status = models.CharField()

我现在需要查找六个月内按月份分组的所有处方,从六个月前的今天开始算起。我试着在shell上玩了一下,得到了这个查询:

^{pr2}$

但是,在视图中使用相同的方法时不起作用:

class PrescriptionTrendListView(generics.ListAPIView):
    queryset = Prescription.objects.all()
    serializer_class = LineGraphSerializer

    def get_queryset(self):
        end_date = timezone.now()
        start_date = end_date - relativedelta(months=6)
        truncate_date = connection.ops.date_trunc_sql('month', 'date_prescribed')
        qs = super(PrescriptionTrendListView,self).get_queryset.extra(select={'month': truncate_date})
        return qs.filter(date_prescribed__range=(start_date, end_date)).annotate(pk_count=Count('pk')).order_by('month')

我得到一个错误说明“函数对象没有额外的属性”。 我做错什么了?在


Tags: namedatemodelmodelsmaxclassendqueryset
1条回答
网友
1楼 · 发布于 2024-04-28 00:09:12

你的超级函数调用有一个错误(你没有调用它)

qs = super(PrescriptionTrendListView,self).get_queryset().extra(select={'month': truncate_date})

相关问题 更多 >