2

我正在使用tastepie从我的django模型创建json但是我遇到了一个我认为应该有一个简单修复的问题。

我有一个对象博客,它有评论对象的孩子。我希望能够用我的 json 做这样的事情:

/api/v1/blogs/?order_by=comment_count

但我不知道如何对不属于原始评论/博客模型的字段进行排序。我自己在一个脱水方法中创建了comment_count,该方法只接受评论数组并返回comments.count()

任何帮助将不胜感激 - 我似乎找不到任何解释。

4

2 回答 2

2

如果我理解正确,这应该会有所帮助:

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

You might be able to do it with extra like something like:

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

I haven't tested this, but it should work. The caveat is it will only work with a relational database.

于 2011-10-28T16:49:30.183 回答