Как изменять выборку вариантов фильтра (queryset) в зависимости от юзера в Django?

Как изменять выборку вариантов фильтра в зависимости от request.user?

filters.py

shops = Shop.objects.filter(is_active=True)
SHOP_CHOICES = [('All', 'All')]
for x in shops:
    SHOP_CHOICES.append((x.address, x))
SHOP_CHOICES = tuple(SHOP_CHOICES)


class ShopFilter(django_filters.FilterSet):
    address = django_filters.MultipleChoiceFilter(choices=SHOP_CHOICES)

    class Meta:
        model = Shop
        fields = ['address']

views.py

f = ShopFilter(request.GET)

Ответы (1 шт):

Автор решения: Sasha Borysenko

Можно переопределить qs. Пример:

@property
def qs(self):
    parent = super().qs
    owner = getattr(self.request, 'user', None)

    return parent.filter(custom_user=owner)
→ Ссылка