Я пытаюсь определить лучший способ добавить корневой элемент во все ответы json, используя django и django-rest-framework.
Я думаю, что добавление настраиваемого рендеринга - лучший способ выполнить то, что я хочу достичь, и это то, к чему я придумал:
from rest_framework.renderers import JSONRenderer
class CustomJSONRenderer(JSONRenderer):
#override the render method
def render(self, data, accepted_media_type=None, renderer_context=None):
#call super, as we really just want to mess with the data returned
json_str = super(CustomJSONRenderer, self).render(data, accepted_media_type, renderer_context)
root_element = 'contact'
#wrap the json string in the desired root element
ret = '{%s: %s}' % (root_element, json_str)
return ret
Теперь сложная часть динамически устанавливает root_element
на основе представления, из которого вызывается render()
.
Приветствуются любые указатели/советы,
Приветствия