Próbuję określić najlepszy sposób dodania elementu głównego do wszystkich odpowiedzi json przy użyciu django i django-rest-framework.Dodawanie elementu głównego do odpowiedzi json (django-rest-framework)
myślę dodając niestandardowy mechanizm renderujący jest najlepszym sposobem, aby osiągnąć to, co chcę osiągnąć i to, co mam wymyślić do tej pory:
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
Najtrudniejsze teraz jest dynamicznie ustawienie root_element
oparciu na widoku, z którego wywoływany jest render()
.
Wszelkie wskazówki/porady byłyby bardzo mile widziane,
Cheers
Dzięki ever.wakeful dla idei, ja też napisałem post o tym, jak go używać z ExtJS frontend (nie muszę inaczej wywoływać elementu głównego, i potrzebuję mieć paginator.count w głównym elemencie) http://kaygorodov.github.io/2014/02/21/extjs-django-rest-framework -root-element.html –