我正在使用 django-piston 创建我的 api。我需要知道是否可以根据参数更改返回字段。我正在尝试返回缩略图字段,但我需要选择通过 URL 传递缩略图的大小。
提前致谢
我正在使用 django-piston 创建我的 api。我需要知道是否可以根据参数更改返回字段。我正在尝试返回缩略图字段,但我需要选择通过 URL 传递缩略图的大小。
提前致谢
刚刚对类似的事情感到困惑,我相信我可以帮助您指出正确的方向。
要意识到的基本事情是活塞不关心你返回什么。对于我的用例,我想返回子资源。所以,如果我有:
{
"foo": "bar",
"baz": [{"id": 1}, {"id": 23}],
}
我可以只请求baz
对象,然后得到:
{
"baz": [{"id": 1}, {"id": 23}],
}
起初我尝试动态更改处理程序的fields
or excludes
,但那是完全错误的方法。一旦我意识到活塞根本不在乎,我就这样做了:
if attrib is not None:
if hasattr(binder, attrib):
return getattr(binder, attrib)
else:
return rc.BAD_REQUEST
效果很好。一个警告:fields
或excludes
适用于您返回的对象。当我试图返回一个子资源并且我没有得到所有字段时,它让我措手不及。因此,请检查是否遇到问题。
对于您的情况,具体来说,我认为您可以轻松地将缩略图生成为请求的大小,然后构建一个元对象以返回:
meta = dict()
meta['thumbnail' = generateThumbnail(width, height)
meta['other_field'] = base.other_field
return meta
看看这是否适合你。