Тип содержимого поршня Django всегда нулевой - PullRequest
0 голосов
/ 09 августа 2010

неделю назад у меня работал django-pneon, но в последнее время я не могу вызывать какие-либо веб-сервисы.Ниже приведен простой пример.У меня есть служба тестирования, которая возвращает «да», если есть тип контента, и «нет», если тип контента равен нулю.Я сделал это, потому что я получаю ошибки HTTP 500, когда я делаю POST и пытаюсь проанализировать мои параметры через data = request.data.Я предполагаю, что не могу сделать request.data, потому что тип содержимого является нулевым?

Итак, вот мой простой веб-сервис:

class testHandler(BaseHandler):
     def create(self, request):
         if request.content_type:
              return 'yes'
         else:
              data = request.data
              return 'no'

А вот файл urls.py:

class CsrfExemptResource( Resource ):
     def __init__( self, handler, authentication = None ):
         super( CsrfExemptResource, self ).__init__( handler, authentication )
         self.csrf_exempt = getattr( self.handler, 'csrf_exempt', True )

controller_handler = CsrfExemptResource(controllerHandler)
test_handler = CsrfExemptResource(testHandler)

urlpatterns = patterns('',
     url(r'^controller/', controller_handler),
     url(r'^test/', test_handler),
)

И, наконец, код, который я запускаю из моеготерминал Python для вызова службы:

params = urllib.urlencode({'value':'someValue'}) 
req = urllib2.Request("http://127.0.0.1/cindy/api/test/", params) 
result = urllib2.urlopen(req).read() 

Таким образом, 'result' всегда возвращает no, а если я помещаю строку 'request.data' в службу, я получаю ошибку HTTP 500.

Заранее спасибо.

1 Ответ

0 голосов
/ 09 августа 2010

Я не думаю, что в объекте HttpRequest есть атрибут data. Возможно, вы ищете raw_post_data.

...