Как заставить DRF передавать параметры запроса в действия - PullRequest
0 голосов
/ 05 ноября 2019

Я использую фильтрацию в django rest framework с использованием django-filters. Из-за характера некоторых @actions, которые я имею в моем наборе, мне нужно передать параметры фильтра этим действиям. Есть ли способ передать параметры запроса текущего списка просмотра набора данных этим действиям?

1 Ответ

0 голосов
/ 05 ноября 2019

Я решил эту проблему, переписав стандартные средства визуализации django-rest-framework и изменив метод get_extra_actions для отображения URL с правильными параметрами запроса.

def get_extra_actions(extra_actions_dict, view):
    query_params = view.request.query_params
    for k, v in extra_actions_dict.items():
        extra_actions_dict[k] = f'{v}?{urlencode(query_params, doseq=True)}'
    return extra_actions_dict


class BrowsableAPIRenderer(RestBrowsableAPIRenderer):
    def get_extra_actions(self, view, status_code):
        extra_actions_dict = super(BrowsableAPIRenderer, self).get_extra_actions(view, status_code)
        return get_extra_actions(extra_actions_dict, view)
...