【发布时间】:2015-10-26 05:03:34
【问题描述】:
我有以下两种型号:
class Show(models.Model):
name = models.CharField(max_length=100)
is_active = models.BooleanField(default=True)
class Episode(models.Model):
start = models.DateTimeField()
series = models.ForeignKey('Show', related_name='episodes')
我想检索Show 的所有实例,其中is_active 设置为True,并且至少有1 个Episode。我遇到问题的部分是我还希望Show 实例按相关的Episode start 字段排序,并且Show 实例是唯一的。
这可以通过单个查询来实现吗?
我尝试过的:
Show.objects.annotate(
e_count=Count('episodes')
).filter(
e_count__gt=0,
is_active=True,
).order_by('episodes__start').distinct()
【问题讨论】:
-
尝试按剧集开始时间的
MAX()排序。见this question。 -
谢谢!我没有想到。 :-)
标签: python django django-models