【问题标题】:Django - complicated ORM Query (related_set)Django - 复杂的 ORM 查询(related_set)
【发布时间】:2021-05-27 05:59:30
【问题描述】:

我有模型车、列表和网站。

class Listing..
    car = ForeignKey...
    website = ForeignKey...
    active = BooleanField...

我想过滤给定网站上所有具有listing 对象但listing 需要处于活动状态的car 对象。

要获取给定网站上所有具有listing 对象的car 对象:

website = ...
Car.objects.filter(listings__website__in=website)

但是如何过滤掉不活跃的列表呢?

我想要类似的东西:

website = ...
Car.objects.filter(listings[only_active]__website__in=website)

【问题讨论】:

    标签: python sql django django-queryset django-orm


    【解决方案1】:

    你会在你的过滤器上做一个额外的条件:

    Car.objects.filter(listings__website__in=website, listings__active=True)
    

    【讨论】:

    • 它不会也返回至少有一个 listing__website 匹配并且至少有一个(任何)列表处于活动状态(任何列表,不一定是特定网站的列表)的汽车吗?这是所需结果的超集。
    • 不会的。此代码将根据您的需要工作。见docs.djangoproject.com/en/3.1/topics/db/queries/…
    猜你喜欢
    • 1970-01-01
    • 2013-06-09
    • 2012-08-03
    • 1970-01-01
    • 2021-09-07
    • 2020-01-03
    • 2015-12-06
    • 2015-05-16
    • 2011-06-08
    相关资源
    最近更新 更多