我正在尝试制作一个 django-piston API,它读取另一个 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 提供了一个正确的对象),我只得到一个空字符串。
如何让它发挥作用?