model定义:
class Test(models.Model):
name = models.CharField(max_length=12)
amount = models.DecimalField(max_digits=9, decimal_places=2)
tax = models.DecimalField(max_digits=9, decimal_places=2)
create = models.DateTimeField(auto_now_add=True)
query:
qs = Test.objects.filter(pk=id) \
.annotate(
str_create=Cast(TruncSecond('create', DateTimeField()), CharField()),
f_amount=Sum('amount', output_field=FloatField()),
f_tax=Sum('tax', output_field=FloatField()),
).values('str_create', 'f_tax', 'f_amount', f_name=F('name'))
核心就是Cast,Sum辅助函数的使用。