我在这里遵循了这个示例,因为我想为我的 django 应用程序添加使用美味的登录。由于不推荐使用的方法,我进行了必要的更正并运行了它。注销过程正常工作。但是我在登录页面出现错误。
expected string or buffer
和一个 500 状态码。当我尝试反序列化发布的数据时出现错误。登录视图如下
def login(self, request, **kwargs):
self.method_check(request, allowed=['post',])
try:
data = self.deserialize(request, HttpRequest.body, format=request.META.get('CONTENT_TYPE', 'application/json'))
except BaseException as e:
print e
username = data.get('username', '')
password = data.get('password', '')
print username, password
user = authenticate(username=username, password=password)
if user:
if user.is_active:
print 'Before login'
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 )
我使用python请求发布数据进行测试
data = {'username':'user', 'password':'pass}
parmas = json.dumps(data)
headers = {'content-type': 'application/json'}
resp = requests.post('http://127.0.0.1:8000/api/v1/user/login/', data=params, headers=headers)
这个错误是什么意思?