Django查询集按相关模型顺序排序

时间:2015-08-03 23:25:17

标签: python django django-models

我有以下两种模式:

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的{​​{1}}设置为is_active并且至少有True的所有实例。我遇到问题的部分是,我还希望相关的Episode Show字段对Episode个实例进行排序,并使start个实例具有唯一性。

单个查询是否可以实现这一目标?

我尝试过:

Show

1 个答案:

答案 0 :(得分:1)

我是按照匿名的建议使用Min实现的。

Show.objects.filter(
    is_active=True,
).annotate(
    e_count=Count('episodes'),
    start=Min('episodes__start'),
).filter(
    e_count__gt=0,
    start__gt=timezone.now(),
).order_by('start')