Django queryset注释

时间:2015-08-11 07:21:34

标签: django-models

大家好我是新手试图在Django中创建一个应用程序现在我需要用F表达式运行查询一切正常,但是当我尝试使用Sum得到两个总计字段时其余的注释字段只是消失

query = FinalReport.objects.values('customers', 'currency_desc','design_fee' ,
    'currency', 'month', 'year', 'categories')\
    .annotate(pairs=F('total_lenses')/2, invoice=ExpressionWrapper(F('pairs') * F('design_fee'),
    output_field=DecimalField(decimal_places=1000, max_digits=5)), total_pairs=Sum(F('total_lenses')/2))

当我运行它时,对字段和发票字段值刚刚消失。并且total_pairs字段不显示Django都没有显示任何错误。

1 个答案:

答案 0 :(得分:0)

你试过这个:

query = FinalReport.objects.values('customers', 'currency_desc', 'design_fee',
                                   'currency', 'month', 'year', 'categories') \
    .annotate(pairs=F('total_lenses') / 2,)\
    .annotate(invoice=ExpressionWrapper(F('pairs') * F('design_fee'),
                                        output_field=DecimalField(decimal_places=1000, max_digits=5)))\
    .annotate(total_pairs=Sum(F('total_lenses') / 2))

我注意到注释有时会混淆,将它分开可能有所帮助。