Как установить значение параметров по умолчанию в django-фильтре? - PullRequest
0 голосов
/ 21 октября 2019

Я читал эту статью: https://django -filter.readthedocs.io / en / master / guide / tips.html # using-initial-values-as-defaults

инапишите этот код:

class MyFilter(filters.FilterSet):
    archive = filters.BooleanFilter(method='filter_archive')

    def __init__(self, data=None, *args, **kwargs):
        if data is not None:
            data = data.copy()
            if 'archive' not in self.base_filters.keys():
                data['archive'] = 'false'
        else:
            data = QueryDict()
            data['archive'] = 'false'
        super(MyFilter, self).__init__(data, *args, **kwargs)

    def filter_archive(self, qs, name, value):
        # .. some code ..

Если запрос к URL-адресу без параметров запроса, фильтр по умолчанию не применяется, а если запрос к URL-адресу с архивным параметром в запросе, фильтр применяется. Почему этот код не работает?

Моя система:

  • django 1.11.20
  • django-filter 1.10
  • djangorestframework-filters 0.11.1
  • djangorestframework 3.6.4
...