Search code examples
djangodjango-modelsdjango-managers

How to pass parameteres to get_queryset method of django models manager?


I am trying to follow this documentation. I would like to pass somehow parameters to get_queryset, but don't know how. Not working demo below.

class ContextAwareNotificationsManager(models.Manager):

    def get_queryset(self, user):
        return super(ContextAwareNotificationsManager, self).get_queryset(user).filter((
            Q(kind='SYSTEM') | Q(kind='TODO', status=False)
        ), content_type__name__in=['publisher', 'site', 'channel']).order_by('-date')

Solution

  • This should be what you are looking for:

    class ContextAwareNotificationsManager(models.Manager):
    
        def filter_user(self, user):
            return super(ContextAwareNotificationsManager, self).get_query_set().filter(...)