【发布时间】:2013-10-03 13:41:13
【问题描述】:
我试图在tastepie Api 中创建一个登录模块,但在使用Postman REST 客户端进行测试时出现错误。
Method : POST
format : application/json
content type : json
raw data: {
'type': 'login',
'username': 'username',
'password': 'password'
}
def login(self, request, **kwargs):
self.method_check(request, allowed=['post'])
data = self.deserialize(request, request.raw_post_data, format=request.META.get('CONTENT_TYPE', 'application/json'))
username = data.get('username', '')
password = data.get('password', '')
user = authenticate(username=username, password=password)
if user:
if user.is_active:
login(request, user)
return self.create_response(request, {
'success': True
})
else:
return self.create_response(request, {
'success': False,
'reason': 'disabled',
}, HttpForbidden )
else:
return self.create_response(request, {
'success': False,
'reason': 'incorrect',
}, HttpUnauthorized )
Postman 中的错误消息
{ "error_message": "期望属性名称:第 1 行第 1 列 (char 1)", "traceback": "Traceback (最近一次调用最后一次):\n\n 文件\"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", 第 178 行,在包装器中\n response = callback(request, *args, **kwargs)\n\n 文件\"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", 第 379 行,在 dispatch_list\n 中返回 self.dispatch('list', request, **kwargs)\n\n 文件\"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", 第 409 行,在 dispatch\n response = method(request, **kwargs)\n\n 文件 \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", 第 1077 行,在 post_list\n 中反序列化 = self.deserialize(request, request.raw_post_data, 格式=request.META.get('CONTENT_TYPE', '应用程序/json'))\n\n 文件 \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", 第 328 行,在反序列化\n 反序列化 = self._meta.serializer.deserialize(数据, 格式=request.META.get('CONTENT_TYPE', 'application/json'))\n\n 文件 \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/serializers.py\", 第 157 行,在反序列化中\n 反序列化 = getattr(self, \"from_%s\" % desired_format)(内容)\n\n 文件 \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/serializers.py\", 第 301 行,在 from_json\n 返回 simplejson.loads(content)\n\n 文件 \"/usr/lib/python2.7/json/init.py\",第 326 行,加载中\n
返回 _default_decoder.decode(s)\n\n 文件 \"/usr/lib/python2.7/json/decoder.py\",第 366 行,在 decode\n obj 中, end = self.raw_decode(s, idx=_w(s, 0).end())\n\n 文件 \"/usr/lib/python2.7/json/decoder.py\",第 382 行,在 raw_decode\n
obj, end = self.scan_once(s, idx)\n\nValueError: Expecting property 名称:第 1 行第 1 列(字符 1)\n" }
【问题讨论】: