簡體   English   中英

Django queryset按相關模型的順序不同

[英]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 EpisodeShow所有實例。 我遇到的問題是我還希望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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM