Обрабатывать параметр запроса POST-запроса из API с возможностью просмотра в Django Rest Framework - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть требование иметь параметр запроса в запросе POST с полезной нагрузкой JSON в теле.

Теперь в django-rest-framework я смог сделать это, переопределив perform_createметод ModelViewSet в моем классе представления, но что я могу сделать, чтобы он появился в просматриваемом API.Я пробовал django-filter и его бэкэнд, но они направлены на фильтрацию (очевидно) в GET-запросе.Я не хочу фильтровать, но хочу просто использовать этот параметр запроса в качестве параметра для запуска задач сельдерея во время perform_create.

Вот так сейчас выглядит мой viewset.

class AbcViewSet(viewsets.ModelViewSet):
    queryset = Abc.objects.all()
    serializer_class = AbcSerializer
    filterset_fields = ('fk_field', )


    def perform_create(self, serializer):
        query_param1 = self.request.query_params.get('param', None)
        ...schedule salary using the query_param1 and save the model...


мой запрос на это будет выглядеть как http://127.0.0.1:8000/abc/?param=xyz

Если вы заметите выше, я хочу заполнить этот param с помощью API с возможностью просмотра.Попытка поиска у меня есть ощущение, что это потребует создания какого-то рендеринга HTML-представления для параметра, но если его будет проще получить из просматриваемого API, это определенно поможет.В настоящее время я не вижу способа отправить какие-либо параметры запроса, кроме фильтров.

1 Ответ

1 голос
/ 23 апреля 2019

Вы можете вызвать доступный к просмотру API с определенным параметром запроса, например:

http://localhost:8000/yoururl?param=111 и при выполнении POST self.request.query_params даст <QueryDict: {'param': ['111']}>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...