別の API を読み取り、別の形式で表示する django-piston API を作成しようとしています (XML のみの API を読み取り、JSON で表示します)。しかし、私がやっている方法は空の文字列であるため、問題が発生しています。
ここに私のハンドラがあります:
class MyHandler(BaseHandler):
methods_allowed = ('GET')
def read(self, request, my_argument):
my_node = get_node(my_argument)
return my_node
get_node 関数は、他の API からオブジェクトを取得する単なる関数であり、lxml オブジェクトです。
In [27]: type(my_node)
Out[27]: <type 'lxml.objectify.ObjectifiedElement'>
私の urls.py には次のものがあります。
from django.conf.urls.defaults import *
from piston.resource import Resource
from api.handlers import MyHandler
class CsrfExemptResource( Resource ):
def __init__( self, handler, authentication = None ):
super( CsrfExemptResource, self ).__init__( handler, authentication )
self.csrf_exempt = getattr( self.handler, 'csrf_exempt', True )
my_resource = CsrfExemptResource( MyHandler )
urlpatterns = patterns( '',
url( r'^api/(?P<my_argument>.*)/$', my_resource ),
)
そして、その URL にアクセスすると (get_node に直接与えられた適切な引数を使用して、正しいオブジェクトが得られます)、空の文字列が返されます。
それを機能させる方法は?