2012-08-05 20 views
6

Las notas de la versión de django rest framework indican que el soporte de JSONP se agregó nuevamente en 0.3.0. También encontré una clase JSONPRenderer en el marco. Sin embargo, parece que no puedo encontrar ninguna documentación sobre cómo usar la cosa ... Soy bastante nuevo en jsonp.Uso de jsonp con django-rest-framework

¿Alguien ha utilizado con éxito jsonp con el marco de descanso django?

Respuesta

5

Al publicar esto, encontré la respuesta (o al menos una respuesta). Parece que el renderizador jsonp está disponible de manera predeterminada en un ModelResource, por lo que todo lo que necesita hacer es agregar "? Format = json-p" a la url que lo solicita.

+2

[Aquí] (http://django-rest-framework.org/api-guide/renderers.html#jsonprenderer) la documentación oficial. – chaselee

+2

sólo para ahorrar unos pocos minutos a todos los googling: REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.JSONPRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ), – vincent

+1

actualización: solía ser parte de la distribución de framework de reposo django, pero ahora está disponible como un paquete de terceros http://jpadilla.github.io/django-rest-framework-jsonp/ –

0
from rest_framework.views import APIView 
from rest_framework_jsonp.renderers import JSONPRenderer, JSONRenderer 
from rest_framework.response import Response 

class YourClass(APIView): 
    renderer_classes = (JSONPRenderer, JSONRenderer) 

    def get(self, request, *args, **kwargs): 
     your_result = {{ your serialized result }} 
     return Response({'status': 'success', 'result': your_result}) 
2

Just in case someone is jsonp.

Primera (docs):

pip install djangorestframework-jsonp

Y a continuación, modificar la configuración del marco REST.

REST_FRAMEWORK = { 
    'DEFAULT_RENDERER_CLASSES': (
    'rest_framework_jsonp.renderers.JSONPRenderer', 
), 
} 

último asegurarse de que la URL contiene ?format=jsonp y no ?format=json-p.