【发布时间】:2019-09-12 01:38:18
【问题描述】:
我需要在 POST 请求中包含查询参数,正文中包含 JSON 有效负载。
现在在 django-rest-framework 中,我已经能够通过在我的视图类中覆盖 ModelViewSet 的 perform_create 方法来做到这一点,但是我可以做些什么让它出现在可浏览的 API 中。我尝试了 django-filter 及其后端,但它们适用于(显然)在 GET 请求中进行过滤。我不想过滤,但只想使用该查询参数作为参数在perform_create 期间运行 celery 任务。
这就是我的视图集现在的样子。
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 celery task using the query_param1 and save the model...
我对此的要求类似于http://127.0.0.1:8000/abc/?param=xyz
如果您注意到以上内容,我希望能够使用可浏览的 API 填写param。尝试搜索时,我感觉它将涉及为参数创建某种 HTML 视图渲染,但如果它更容易从可浏览的 API 中获得,那肯定会有所帮助。目前,除了过滤器之外,我看不到任何发送任何查询参数的方法。
【问题讨论】:
标签: python django django-rest-framework