Python Django组(按小时/天)

Python Django组(按小时/天),python,django,orm,Python,Django,Orm,我有一个模型: Model.py class DispatchPlan(models.Model): total_trucks = models.IntegerField(default=0) material_type = models.CharField(max_length=255, default=0, choices=mtypes) scheduled_date = models.DateTimeField(max_length=255, default=0)

我有一个模型:

Model.py

class DispatchPlan(models.Model):
    total_trucks = models.IntegerField(default=0)
    material_type = models.CharField(max_length=255, default=0, choices=mtypes)
    scheduled_date = models.DateTimeField(max_length=255, default=0)
    offered_price = models.IntegerField(default=0)
    weight = models.IntegerField(default=0)
我正试着在预定日期和体重之间画一个图表。我想根据小时和重量对时间戳进行分组。 我该怎么做

在SQl中,它就像
.groupby('scheduled_date)
,但由于它是一个时间戳,我认为它不一样

应该是:

data = DispatchPlan.objects.all().groupby('scheduled_date')
我使用postgres作为我的数据库

编辑: 我试过的

dataset = DispatchPlan.objects.annotate(month=TruncMonth('scheduled_date')).values('month').annotate(c=sum('weight')).values('month', 'c')
错误:

TypeError:不支持+:“int”和“str”的操作数类型


您需要使用Django的
Sum
方法,而不是Python的
Sum
。因此,请这样做:

从django.db.models导入总和
dataset=DispatchPlan.objects.annotate(月=TruncMonth('scheduled_date'))。值('month')。annotate(c=Sum('weight'))。值('month','c'))
由于您似乎希望按小时分组,因此应改用
TruncHour

从django.db.models导入总和
从django.db.models.functions导入TruncHour
dataset=DispatchPlan.objects.Annotation(
小时=TruncHour('scheduled_date')
).价值观(
“小时”
).注释(
c=总和(“重量”)
).价值观(
“小时”,
"c",,
)
它给出了一个月的输出,我们可以得到每天或每小时的数据吗?