我正在使用tastypie从我的django模型创建json但是我遇到了一个我认为应该有一个简单修复的问题。
我有一个对象博客,它有评论对象的孩子。我希望能够用我的json做这样的事情:
/ api / v1 / blogs /?order_by = comment_count
但我无法弄清楚如何对不属于原始评论/博客模型的字段进行排序。我在一个脱水方法中创建了comment_count,它只接受注释数组并返回comments.count()
任何帮助都会非常感激 - 我似乎找不到任何解释。
答案 0 :(得分:2)
如果我理解正确,这应该有所帮助:
Blog.objects.annotate(comment_count=Count('comments')).order_by('comment_count')
答案 1 :(得分:1)
您可以使用extra执行此操作,例如:
Blog.objects.extra(
select={
'entry_count': 'SELECT COUNT(*) FROM blog_entry WHERE blog_entry.blog_id = blog_blog.id'
},
order_by = ['-entry_count'],
)
我没有对此进行测试,但它应该可行。需要注意的是,它只适用于关系数据库。