I have a four classes:
class A(models.Model):
field1 = models.BooleanField(default = True)
class Meta:
abstract = True
class B(models.Model):
field2 = models.BooleanField(default = True)
sites = models.ManyToManyField(Site)
class Meta:
abstract = True
class C(A,B):
field3 = models.BooleanField(default = True)
class Meta:
abstract = True
and
class D(C):
field4 = models.BooleanField(default = True)
Only class D is in models.py in my app. Others is imported from diffrent files. Fields of classess A anb B are being used in many models. I created class D because i want to have generic admin panel from Django.
However, if i use this code:
obj = D()
model_class = obj.__class__
items = model_class.objects.filter(sites__id__exac=1)
i get the error:
Join on field 'id' not permitted. Did you misspell 'exac' for the lookup type?
Why?
You’re missing a few letters:
https://docs.djangoproject.com/en/1.3/ref/models/querysets/#exact
More importantly, you shouldn’t need to do an __exact on an ID field, just do:
or