0

Django QuerySet を動的に構築できる関数を作成しようとしています。しかし、何らかの理由でそれはNameError... 何がうまくいかないのか誰にもわかりますか?

動作しません:

from django.db.models import Sum

sum_fields = ['subtotal', 'id']
subtotal = Invoice.objects.filter(id__in=id_list).aggregate(**{field: Sum(field) for field in sum_fields})

与えられたエラーはNameError: global name 'Sum' is not definedです。しかし... 辞書の理解を試みる直前にインポートしています。

これは機能します:

from django.db.models import Sum

sum_fields = ['subtotal', 'id']
subtotal = Invoice.objects.filter(id__in=id_list).aggregate(**dict([(field, Sum(field)) for field in sum_fields]))

最後のバージョンは機能し、本来あるべきことを行いますが、私の辞書理解の何が問題なのか知りたいです。

4

0 に答える 0