目前我显示的错误如下:
Python API:
errors = {}
errors['message'] = 'Sorry we could not log you in.'
return self.create_response(request, {'errors':[errors]}, HttpUnauthorized)
然后在Javascript中我将它们显示为:
for (var key in object.data.errors) {
$scope.errors.push(object.data.errors[key].message);
}
正如你所看到的,javascript循环了一系列错误,但是在Python中如果我尝试这样做:
errors = {}
errors['message'] = 'Sorry we could not log you in.'
errors['message'] = 'another error'
return self.create_response(request, {'errors':[errors]}, HttpUnauthorized)
因为此代码仅附加最后一个错误,第一个错误将被覆盖。
如何保持相同的主体,但在Python中允许自己实际附加错误消息?
答案 0 :(得分:1)
看看你的例子试试这个。
response = {}
response['errors'] = []
response['errors'].append({'message': 'another error message'})
response['errors'].append({'message': 'Sorry we could not log you in.'})
return self.create_response(request, response, HttpUnauthorized)
这将为您提供一个错误列表,这些错误将与您提供的javascript示例一起使用。你也可以这样做:
response['errors'].append({'message': 'Sorry we could not log you in.', 'code', '22'})
等
答案 1 :(得分:1)
您正在制作错误的字典,但是您使用相同的密钥(message
)来处理两个错误。您应该改为列出错误:
errors = []
errors.append('Sorry we could not log you in.')
errors.append('another error')
return self.create_response(request, {'errors': errors}, HttpUnauthorized)
然后迭代此列表。
for (var key in object.data.errors) {
$scope.errors.push(object.data.errors[key]); /* .message isn't necessary now */
}
如果要添加有关错误的更多信息,可以列出dict:
errors.append({'message': 'Sorry we could not log you in.', 'uid': 42})
errors.append({'message': 'another error', 'uid': 1337})
# uid parameter is imaginary here, it's just for the example
答案 2 :(得分:0)
让errors
成为dict
有什么意义?您是否使用'message'
以外的任何值?
无论如何,你可以把它列为一个清单:
errors['message'] = [] ## initialise to empty list
errors['message'].append('Sorry we could not log you in.') ## add first error message
errors['message'].append('another error') ## add next