【问题标题】:django subquery via orm通过 orm 的 django 子查询
【发布时间】:2010-08-04 11:42:52
【问题描述】:

我有模型:

class Site(models.Model):
    profile = models.ForeignKey(User)

class Profile(models.Model):
    blacklist = models.ManyToManyField(Site)

我怎样才能通过 django orm 进行等效的查询?

SELECT * FROM site WHERE 2 NOT IN (SELECT site_id FROM profile_blacklist WHERE profile_site.profile_id=site.profile_id)

我需要某种黑名单过滤器。每个站点都有用户(配置文件)。该用户有网站黑名单。我确实搜索了 id=2 的站点,例如。我需要网站,女巫所有者在黑名单中没有 2 号网站。

【问题讨论】:

    标签: django orm subquery


    【解决方案1】:

    不要用 SQL 来思考。想想你想要什么结果。

    我真的不明白你为什么要在那个 SQL 中使用子查询。看来您要做的是找到所有 ID 为 2 的类别的网站。对吗?

    如果是这样,你想要的是:

    Site.objects.filter(category__id=2)
    

    【讨论】:

    • 抱歉,我的第一个问题描述不好。我编辑主题。
    猜你喜欢
    • 2021-12-20
    • 2020-05-26
    • 2014-05-19
    • 2022-01-21
    • 2014-05-27
    • 2021-10-04
    • 1970-01-01
    • 2020-12-03
    相关资源
    最近更新 更多