2012-08-05 7 views
6

Uwagi do wydania frameworka django rest twierdzą, że wsparcie JSONP zostało dodane ponownie w wersji 0.3.0. Znalazłem także klasę JSONPRenderer w ramach. Jednak nie mogę znaleźć żadnej dokumentacji na temat korzystania z tej rzeczy ... Jestem całkiem nowy w jsonp.Używanie jsonp z django-rest-framework

Czy ktokolwiek z powodzeniem korzystał z jsonp z frameworkiem django?

Odpowiedz

5

Podczas zamieszczania tego, znalazłem odpowiedź (lub przynajmniej odpowiedź AN). Wygląda na to, że renderer jsonp jest domyślnie dostępny w środowisku ModelResource, więc wszystko, co musisz zrobić, to dodać "? Format = json-p" do adresu URL żądającego.

+2

[Tutaj] (http://django-rest-framework.org/api-guide/renderers.html#jsonprenderer) oficjalny dokument. – chaselee

+2

Wystarczy zapisać kilka minut do wszystkich googling go: REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.JSONPRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ), – vincent

+1

aktualizacja: kiedyś była częścią dystrybucji frameworku django, ale teraz jest dostępna jako pakiet zewnętrzny 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

Na wszelki wypadek, gdy ktoś szuka jsonp.

Pierwsze (docs):

pip install djangorestframework-jsonp

a następnie zmodyfikować ustawienia ramowych resztę.

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

Wreszcie upewnij się, że adres URL zawiera ?format=jsonp i nie ?format=json-p.