-
-
Notifications
You must be signed in to change notification settings - Fork 302
Closed
Description
I'd like to add filter_by_user methods to all QuerySet classes defined for child polymorphic models and use them to filter objects of every model when called for the base model. filter_by_user methods may be different for different child models. Is this possible?
I tried like in the following code but it didn't work.
class MyBaseQuerySet(PolymorphicQuerySet):
def filter_by_user(self, user):
return self.all()
class MyBaseModel(PolymorphicModel):
...
objects = PolymorphicManager(MyBaseQuerySet)
class MyChild1QuerySet(MyBaseQuerySet):
def filter_by_user(self, user):
return self.filter(fieldA__lt=user.profile.propA)
class MyChild1Model(MyBaseModel):
fieldA = models.IntegerField()
...
objects = PolymorphicManager(MyChild1QuerySet)
class MyChild2QuerySet(MyBaseQuerySet):
def filter_by_user(self, user):
return self.filter(fieldB__gt=user.profile.propB)
class MyChild2Model(MyBaseModel):
fieldB = models.IntegerField()
...
objects = PolymorphicManager(MyChild2QuerySet)
When I call MyBaseModel.objects.filter_by_user(john) magic doesn't happen and only base queryset filter_by_user is called.
Metadata
Metadata
Assignees
Labels
No labels