首页 文章

Django Tastypie通过PostMan REST客户端与API交互

提问于
浏览
5

我试图在tastypie Api中创建一个Login模块,当使用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列(字符1)”,“追溯”:“追溯(最近一次调用最后一次):\ n \ n文件\”/ home / sayone / virtuals / pharma / local / lib / python2.7 / site-packages / tastypie / resources.py \“,第178行,在wrapper \ n response = callback(request,* args,** kwargs)\ n \ n File \”/ 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 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 \“,第328行,反序列化\ 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 \“,第157行,反序列化\ n deserialized = 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(内容)\ n \ n文件\“/ usr / lib / python2.7 / json / init.py \”,第326行,在loads \ n中返回_default_decoder.decode(s)\ n \ n File \“/ 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” }

1 回答

  • 6

    用双引号替换单引号ex:

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

相关问题