[英]Django queryset order by related model with distinct
我有以下兩種模型:
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')
我想檢索將is_active
設置為True
且至少具有1 Episode
的Show
所有實例。 我遇到的問題是我還希望Show
實例按相關的Episode
start
字段排序,並且Show
實例必須唯一。
一個查詢就能做到嗎?
我試過的
Show.objects.annotate(
e_count=Count('episodes')
).filter(
e_count__gt=0,
is_active=True,
).order_by('episodes__start').distinct()
如Anonymous所述,我通過使用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')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.