2012-08-05 12 views
6

Le note di rilascio del framework django restano che il supporto JSONP è stato aggiunto in 0.3.0. Ho anche trovato una classe JSONPRenderer nel framework. Tuttavia, non riesco a trovare alcuna documentazione su come utilizzare la cosa ... Sono abbastanza nuovo per JSONP.Uso di jsonp con il django-rest-framework

Qualcuno ha mai usato con successo jsonp con il framework django rest?

risposta

5

Durante la pubblicazione di questo, ho trovato la risposta (o almeno una risposta AN). Sembra che il renderer jsonp sia disponibile per impostazione predefinita su ModelResource, quindi tutto ciò che devi fare è aggiungere "? Format = json-p" all'URL richiedente.

+2

[qui] (http://django-rest-framework.org/api-guide/renderers.html#jsonprenderer) la documentazione ufficiale. – chaselee

+2

solo per risparmiare qualche minuto a tutti googling: REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.JSONPRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ), – vincent

+1

aggiornamento: faceva parte della distribuzione del framework django rest, ma ora è disponibile come pacchetto di terze parti 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

Nel caso in cui qualcuno stia cercando jsonp.

First (docs):

pip install djangorestframework-jsonp

e quindi modificare le impostazioni del framework REST.

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

Infine assicurarsi che l'URL contiene ?format=jsonp e non ?format=json-p.

Problemi correlati