Зависимые выпадающие списки для фильтра

Я пытаюсь сделать вложенные списки: если выбрано значение в 1-ом выпадающем списке, то от этого зависит, что доступно к выбору во 2-ом выпадающем списке. В случае, если ничего не выбрано в 1-ом выпадающем списке, для того чтобы во 2-ом выпадающем списке ничего не было доступно к выбору, в ModelForm я могу использовать это (и оно работает):

    def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.fields['id_gpu'].queryset = Unit.objects.none()

    if 'id_cs' in self.data:
        try:
            id_cs = int(self.data.get('id_cs'))
            self.fields['id_gpu'].queryset = Unit.objects.filter(id_cs=id_cs).order_by('name_gpu')
        except (ValueError, TypeError):
            pass  # invalid input from the client; ignore and fallback to empty gpu queryset
    elif self.instance.id_gpu:
        self.fields['id_gpu'].queryset = self.instance.id_cs.related_name_cs.all().order_by('name_gpu')

Но теперь я пытаюсь распространить эту же идею на фильтр, но в filters.FilterSet ссылаться на fields нельзя (filter object has no attribute 'fields'). Можно ли как-нибудь прикрутить к фильтру данное условие?

class GroupFilter(filters.FilterSet):
    start_date = DateFromToRangeFilter(widget=RangeWidget(attrs={'type': 'date'}), label='Дата начала работ')

    end_date = DateFromToRangeFilter(widget=RangeWidget(attrs={'type': 'date'}), label='Дата окончания работ')

    search_name_group = filters.CharFilter(method='filter_search', label='Наименование группы работ')

    def filter_search(self, queryset, name, value):
        return queryset.annotate(search=SearchVector('name_group', )).filter(search=value)

    class Meta:
        model = Group
        fields = ['id_filial', 'id_cs', 'id_gpu', 'search_name_group', 'start_date', 'end_date', ]
Вернуться на верх