Reputation: 325
I was trying to create a Login module in tastypie Api, when testing it with Postman REST client getting error.
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 )
{ "error_message": "Expecting property name: line 1 column 1 (char 1)", "traceback": "Traceback (most recent call last):\n\n File \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", line 178, in wrapper\n response = callback(request, *args, **kwargs)\n\n File \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", line 379, in dispatch_list\n return self.dispatch('list', request, **kwargs)\n\n File \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", line 409, in dispatch\n response = method(request, **kwargs)\n\n File \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", line 1077, in post_list\n deserialized = self.deserialize(request, request.raw_post_data, format=request.META.get('CONTENT_TYPE', 'application/json'))\n\n File \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", line 328, in deserialize\n deserialized = self._meta.serializer.deserialize(data, format=request.META.get('CONTENT_TYPE', 'application/json'))\n\n File \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/serializers.py\", line 157, in deserialize\n deserialized = getattr(self, \"from_%s\" % desired_format)(content)\n\n File \"/home/sayone/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/serializers.py\", line 301, in from_json\n return simplejson.loads(content)\n\n File \"/usr/lib/python2.7/json/init.py\", line 326, in loads\n
return _default_decoder.decode(s)\n\n File \"/usr/lib/python2.7/json/decoder.py\", line 366, in decode\n obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n\n File \"/usr/lib/python2.7/json/decoder.py\", line 382, in raw_decode\n
obj, end = self.scan_once(s, idx)\n\nValueError: Expecting property name: line 1 column 1 (char 1)\n" }
Upvotes: 0
Views: 911
Reputation: 111
replace single quotes with double quotes ex:
{"type":"login","username":"username", "password":"password" }
Upvotes: 2