Как передать параметры динамической фильтрации в форму django_filters вместо всех объектов модели?

У меня следующая структура проекта (модели): Компания (основана на Groups) <-- Продукты (foreignKey to Company) <-- Отзывы (foreignKey to Products).

Внутри шаблона я хочу дать пользователю возможность фильтровать отзывы по продуктам, но при использовании django_filters он показывает правильный набор отзывов (относящихся только к продуктам компании), но в выпадающих опциях формы фильтра я могу видеть все продукты всех компаний (даже те, которые не представлены на странице), Например, для компании X я вижу на своей странице только обзоры кактуса и дакимакуры, но в форме фильтра я могу выбрать колбасу (но не должен, потому что это продукт другой компании).

На данный момент все выглядит следующим образом:

#View
def reviewsView(request):
    context = {}
    user = request.user
    company = user.company
    products_qset = ProductModel.objects.filter(company=company)
    reviews_objects = ReviewModel.objects.filter(product__in=products_qset)
    filter = ReviewFilter(request.GET, queryset=reviews_objects)
    context['filter'] = filter

    return render(request, 'companies/reviews.html', context)
#Filter
class ReviewFilter(django_filters.FilterSet):

    class Meta:
        model = ReviewModel
        fields = [
            'product',
            'marketplace',
            'operator',
            'state'
        ]
#Template
<form action="" method="get">
    {{ filter.form.as_p }}
    <input type="submit" name="press me" id="">
</form>
<div class="review-list">
{% for i in filter %}
{{i.product}}, {{i.marketplace}} etc.
{% endfor %}

Я довольно много изучил django_filters docs и этот вопрос кажется дублирующим, но я не могу полностью понять, что и почему происходит с init в этом ответе и как правильно переписать класс ReviewFilter, чтобы экземпляр фильтра делал что-то вроде этого (в View): filter = ReviewFilter(request.GET, queryset_to_show=someQS, queryset_to_display_filtering_options=anotherQS). На данный момент это точно происходит, потому что ReviewFilter Meta указывает на все объекты таблицы (ReviewModel), вместо отфильтрованных beforehands.

Я также пытаюсь применить пагинацию на этой странице (я вырезал это из кода вопроса для "краткости") и после того, как я смогу реализовать фильтрацию, я хотел бы объединить эти два способа, но если то, что я хочу, невозможно - пожалуйста, укажите мне правильное направление (например: "вы можете сделать это, написав свою собственную систему фильтрации с помощью некоторых js, нет необходимости использовать django_filters" или "с angular. js/view.js/somethingelse вы можете получить все это из коробки").

Вернуться на верх