我有以下Django模型:
class Foo(models.Model):
title = models.CharField(_(u'Title'), max_length=600)
class Bar(models.Model):
foo = models.ForeignKey(Foo)
eg_id = models.PositiveIntegerField(_(u'Example ID'), default=0)
Run Code Online (Sandbox Code Playgroud)
我希望返回列表Foo它有一个反向关系的对象Bar是有对象eg_id包含在值列表值.所以我有:
id_list = [7, 8, 9, 10]
qs = Foo.objects.filter(bar__eg_id__in=id_list)
Run Code Online (Sandbox Code Playgroud)
如何Foo根据Bar具有eg_id值的相关对象的数量来对匹配对象进行排序id_list?
Dan*_*man 13
使用Django可爱的聚合功能.
from django.db.models import Count
qs = Foo.objects.filter(
bar__eg_id__in=id_list
).annotate(
bar_count=Count('bar')
).order_by('bar_count')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4171 次 |
| 最近记录: |