4

次のようなものを探しています。

previous_invoices = Invoice.objects.filter(is_open=False)
                                   .order_by('-created')
                                   .group_by('user')

しかし、group_by()存在しません...

これにより、各ユーザーの最近クローズされた請求書が見つかります。

この集約 APIを使用すると、カウントと合計に対してこのようなことができるように見えますが、カウントや合計などは必要ありません。実際には請求書オブジェクトが必要です!

4

2 に答える 2

2

djangoにハッキングした2007年のこのページがありますが、1.1より前のページには文書化されていないgroup_by`があるので、それは意味がありません。しかし、1年前のこのスレッドには、いくつかの洞察があるようです。基本的に:

Djangoは、ORMで「GROUPBY」などを意図的に公開していません。リレーショナルストレージバックエンドを超えているという事実が漏れることがありますが、ORMAPIはSQLにかなり依存しません。代わりに、SQLに変換されたときに「GROUPBY」を使用して実装された特定の機能を公開します(そして、異なるストレージシステムバックエンドを持つまったく異なる魔法の妖精のセットによって実装される可能性があります)。

の使用に関する言及、およびそれが失敗する可能性のある魔​​法の方法も参照しくださいextra。幸運を祈ります。

于 2010-03-13T14:20:31.473 に答える