1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | from django.db import backend, models
class Foo(models.Model):
name = models.CharField(maxlength=250)
class Bar(models.Model):
name = models.CharField(maxlength=250)
foo = models.ForeignKey(Foo)
# Retrieve all Foo objects which have at least one
# Bar object referencing them:
Foo.objects.extra(where=['id IN (SELECT %s FROM %s)' % (backend.quote_name('foo_id'), Bar._meta.db_table)])
# Retrieve all Foo objects which have zero Bar
# objects referencing them:
Foo.objects.extra(where=['id NOT IN (SELECT %s FROM %s)' % (backend.quote_name('foo_id'), Bar._meta.db_table)])
|
Comments