0

Postman RESTクライアントでエラーを取得してテストするときに、tastypie 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 )

Postman のエラー メッセージ

{ "error_message": "予想されるプロパティ名: 行 1 列 1 (文字 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 ファイル \"/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 deserialized = 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 デシリアライズ = 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 deserialized = 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
return _default_decoder.decode(s)\n\n ファイル \"/usr/lib/python2.7/json/decoder.py\"、366 行目、デコード中\ 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: プロパティ名が必要です: 行 1 列 1 (文字 1)\n" }

4

1 に答える 1

2

一重引用符を二重引用符に置き換えます例:

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