0

在使用 Postman REST 客户端进行测试时,我试图在 Tastepie Api 中创建一个登录模块,但出现错误。

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": "期望属性名称:第 1 行第 1 列 (char 1)", "traceback": "Traceback(最近一次调用最后一次):\n\n 文件 \"/home/sayon​​e/virtuals/pharma/local /lib/python2.7/site-packages/tastypie/resources.py\",第 178 行,在包装器中\n response = callback(request, *args, **kwargs)\n\n File \"/home/sayon​​e /virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\",第 379 行,在 dispatch_list\n return self.dispatch('list', request, **kwargs)\n\ n 文件 \"/home/sayon​​e/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\",第 409 行,在调度中\n response = method(request, **kwargs) \n\n 文件 \"/home/sayon​​e/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\",第 1077 行,在 post_list\n 反序列化 = self.deserialize(request, request.raw_post_data, format=request.META.get('CONTENT_TYPE', 'application/json'))\n\n 文件 \"/home/sayon​​e/virtuals/pharma /local/lib/python2.7/site-packages/tastypie/resources.py\",第 328 行,在反序列化中\n deserialized = self._meta.serializer.deserialize(data, format=request.META.get('CONTENT_TYPE ', 'application/json'))\n\n 文件 \"/home/sayon​​e/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/serializers.py\",第 157 行,在反序列化中\n 反序列化 = getattr(self, \"from_%s\" % desired_format)(content)\n\n 文件 \"/home/sayon​​e/virtuals/pharma/local/lib/python2.7/site-packages/tastypie /serializers.py\",第 301 行,在 from_json\n 中返回 simplejson。加载(内容)\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 name: line 1 column 1 (char 1)\n" }

4

1 回答 1

2

用双引号替换单引号例如:

 {"type":"login","username":"username", "password":"password" }
于 2013-09-27T09:50:41.300 回答