【问题标题】:Filtering a Django queryset with a limited subquery使用有限的子查询过滤 Django 查询集
【发布时间】:2018-02-13 21:08:50
【问题描述】:

我正在尝试获取一个查询集,并根据一组有限的子查询进行限制。 它似乎只返回一组有限的第一个查询。

photos = Photo.objects.filter(event=Event.objects.all().order_by('date')[:5]).order_by('event')

我正在尝试获取最近五场活动的所有照片。

【问题讨论】:

    标签: django django-models django-queryset


    【解决方案1】:

    在这种情况下,您必须使用in 查找:

    events = Event.objects.order_by('date')[:5]
    photos = Photo.objects.filter(event__in=events).order_by('event')
    

    【讨论】:

    • 为了清楚起见,如果我试图走可读性最低的路线,我可能也可以使用photos = Photo.objects.filter(event__in=Event.objects.order_by('date')[:5]).order_by('event'),对吧。 :)
    • 对! :-) 你可以在一行中完成
    猜你喜欢
    • 2020-08-22
    • 2019-04-15
    • 2011-09-29
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多