我有模特:
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号网站。
答案 0 :(得分:1)
不要以SQL为例。考虑一下你想要的结果。
我真的不明白你为什么要在那个SQL中使用子查询。您想要做的就是找到所有ID为2的类别的网站。是吗?
如果是这样,你想要的是:
Site.objects.filter(category__id=2)