Exemplo n.º 1
0
    def get_query_params(
        self, need_to_get
    ):  #словарь параметров для запроса или словарь примененных фильтров при выводе результата

        names, have_choices = Car.get_fields_names(
        )  #тут баловство с choices integer. можно было его сделать строковым.
        query_dict = {}

        if need_to_get == 'name':
            query_dict = {
                name: self.request.GET.get(name)
                for name in names.keys() if self.request.GET.get(name)
            }

        elif need_to_get == 'verbose_name':
            for name, verbose_name in names.items():
                value = self.request.GET.get(name)
                if value:
                    if name in have_choices:
                        query_dict[verbose_name] = [
                            y for x, y in have_choices[name] if str(x) == value
                        ][0]
                    else:
                        query_dict[verbose_name] = value
        else:
            raise Exception('Непредусмотренное значение параметра')

        logger.debug('query_dict ({}): {}'.format(need_to_get, query_dict))

        return query_dict