Django具体的sql查询

Rom*_*giy 0 python sql django django-models

我怎样才能在django中执行这样的查询:

SELECT * FROM keywords_keyword WHERE id not in (SELECT keyword_id FROM sites_pagekeyword)
Run Code Online (Sandbox Code Playgroud)

在最新的SVN版本中,我们可以使用:

keywords = Keyword.objects.raw('SELECT * FROM keywords_keyword WHERE id not in (SELECT keyword_id FROM sites_pagekeyword)')
Run Code Online (Sandbox Code Playgroud)

但RawQuerySet不支持filter(),count(),索引和其他东西.还有另外一种方法吗?

cet*_*eek 8

Keyword.objects.exclude(id__in = PageKeyword.objects.all()

Keyword.objects.exclude(id__in=PageKeyword.objects.values('keyword_id'))
Run Code Online (Sandbox Code Playgroud)

为了将来参考,此处记录了排除.


编辑:是的,你是对的; 我纠正了我的回答.往上看.


编辑:更具可读性:

Keyword.objects.exclude(pagekeyword__in=PageKeyword.objects.all())
Run Code Online (Sandbox Code Playgroud)