如何从请求查询参数动态设置DRF中的POST persons/_update_by_query?conflicts=proceed
{
"query": {
"term": {"person_id": 249917}
},
"script": {
"inline": "ctx._source.dri_for_buyers = 4"
}
}
?
我知道DRF基于ACCEPT标头选择了renderer_class
,但是客户端已请求一个选项来基于GET查询参数选择类
答案 0 :(得分:0)
这可以通过在视图上覆盖get_format_suffix
函数来实现。
class MyView(APIView):
self.format_suffix = 'format'
def get_format_suffix(self, **kwargs):
return self.request.query_params.get(self.format_suffix)
答案 1 :(得分:0)
render_class是APIView中可用的属性,并且是一个列表,而不是元组,因此应该是可变的。
from rest_framework.renderers import JSONRenderer
available_render_dicts = {'json': JSONRenderer}
class SomeAPIView(APIView):
renderer_classes = []
def get_format_suffix(self, **kwargs):
format = self.request.query_params.get(self.format_suffix)
self.render_classes = available_render_dicts[format]
super().get_format(**kwargs)