У меня есть требование иметь параметр запроса в запросе 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, это определенно поможет.В настоящее время я не вижу способа отправить какие-либо параметры запроса, кроме фильтров.