2

私はtastypieを使用してdjangoモデルからjsonを作成していますが、簡単な修正が必要だと思う問題が発生しています。

コメントオブジェクトの子を持つオブジェクトブログがあります。私は私のjsonでこのようなことをしたいです:

/ api / v1 / blogs /?order_by = comment_count

しかし、元のコメント/ブログモデルの一部ではないフィールドで並べ替える方法がわかりません。コメントの配列を取得してcomments.count()を返すdehydrateメソッドでcomment_countを自分で作成します

どんな助けでも大歓迎です-私は説明を見つけることができないようです。

4

2 に答える 2

2

私が正しく理解していれば、これは役立つはずです:

Blog.objects.annotate(comment_count=Count('comments')).order_by('comment_count')
于 2011-10-28T20:18:16.600 に答える
1

あなたは次のような余分なものでそれを行うことができるかもしれません:

Blog.objects.extra(
    select={
        'entry_count': 'SELECT COUNT(*) FROM blog_entry WHERE blog_entry.blog_id = blog_blog.id'
    },
    order_by = ['-entry_count'],
)

私はこれをテストしていませんが、動作するはずです。注意点は、リレーショナルデータベースでのみ機能することです。

于 2011-10-28T16:49:30.183 に答える