小编ubh*_*sat的帖子

向APIException添加自定义响应标头

我创建了一个引用http://django-rest-framework.org/api-guide/exceptions.html的自定义异常.

请知道我有自己的身份验证后端.因此我没有使用rest_framework的身份验证模块.

对于身份验证错误,我想将"WWW-Authenticate:Token"标头添加到从异常发送的响应中.

任何想法都会非常有帮助.

更新:

谢谢@Pathétique,这就是我最终要做的事情.

- 有一个名为BaseView的基础视图类.

- 在我的案例'WWW-Authenticate'中覆盖handle_exception方法来设置适当的标题.

这是代码:

class BaseView(APIView):
  def handle_exception(self, exc):
     if isinstance(exc, MYEXCEPTION):
        self.headers['WWW-Authenticate'] = "Token"
        return Response({'detail': exc.detail,
                        status=exc.status_code, exception=True)
Run Code Online (Sandbox Code Playgroud)

你的意见?

python django django-rest-framework

7
推荐指数
1
解决办法
2142
查看次数

如何计算Dynamodb项目大小?获得validationerror 400KB Boto

ValidationException:ValidationException:400 Bad Request {u'message':u'Item size已超过允许的最大大小','__ type':u'com.amazon.coral.validate#ValidationException'}

我拥有的项目对象,大小为92004字节

>>> iii
<boto.dynamodb2.items.Item object at 0x7f7922c97190>
>>> iiip = iii.prepare_full() # it is now in dynamodb format e.g. "Item":{"time":{"N":"300"}, "user":{"S":"self"}} 

>>> len(json.dumps(iiip))
92004
>>>
Run Code Online (Sandbox Code Playgroud)

我得到的尺寸92004小于400KB,为什么在保存项目时会看到上述错误?

有什么指针吗?

编辑:

我玩了不同大小的数据,

>>> i00['Resources'] = "A" * 66848; len(json.dumps(i00))
68481
>>> i = Item(ct.table, data=i00); i.save()
True
>>> i.delete()
True
>>> i00['Resources'] = "A" * 66849; len(json.dumps(i00))
68482
>>> i = Item(ct.table, data=i00); i.save()
Traceback (most recent call last):
  File "<console>", line 1, in <module> …
Run Code Online (Sandbox Code Playgroud)

boto amazon-web-services python-2.7 amazon-dynamodb

1
推荐指数
1
解决办法
2033
查看次数