【问题标题】:Django Tastypie interaction with the API through PostMan REST clientDjango Tastypie 通过 PostMan REST 客户端与 API 交互
【发布时间】: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/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 中返回 self.dispatch('list', request, **kwargs)\n\n 文件\"/home/sayon​​e/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/resources.py\", 第 409 行,在 dispatch\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, 格式=request.META.get('CONTENT_TYPE', '应用程序/json'))\n\n 文件 \"/home/sayon​​e/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/sayon​​e/virtuals/pharma/local/lib/python2.7/site-packages/tastypie/serializers.py\", 第 157 行,在反序列化中\n 反序列化 = getattr(self, \"from_%s\" % desired_format)(内容)\n\n 文件 \"/home/sayon​​e/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" }

【问题讨论】:

    标签: django json rest


    【解决方案1】:

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

     {"type":"login","username":"username", "password":"password" }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      • 2014-05-15
      • 2014-04-11
      • 2019-06-25
      • 1970-01-01
      • 2021-09-04
      相关资源
      最近更新 更多