在查询集中按对象排除
我想从我的查询集中排除一些对象,想知道怎么把一个对象列表传给Django的 exclude()
方法。
这是我目前的做法:
pages = [page1, page2] # page1 and page2 are Page objects
Page.objects.filter(site=site).exclude(pages)
我可以用 exclude(pk__in=[p.pk for p in pages])
这样做,但感觉不太自然。有没有更好的方法可以指定要从上面的查询集中排除的对象列表呢?
1 个回答
3
看起来我的方法到目前为止是最好的之一。以下是我最终得到的结果:
pages = [page1, page2] # page1 and page2 are Page objects
Page.objects.filter(site=site).exclude(pk__in=[p.pk for p in pages])