我在tastypie中有一个ModelResource,用于具有id和名称的简单模型。
XML输出如下所示。但我想用我的模型名称代替“对象”。我似乎无休止地在如何解决这个问题上挣扎 - 对此有什么快速帮助?万分感谢 - 真的!
<response>
<objects type="list">
<object>
<id>1</id>
<name>foo1</name>
<resource_uri> blah </resource_uri>
</object>
<object>
<id>2</id>
<name>foo2</name>
<resource_uri> blah </resource_uri>
</object>
</objects>
</response>
答案 0 :(得分:3)
您可以尝试重载Resource类的“alter_list_data_to_serialize(...)”方法。正如文档字符串所说:
在序列化之前改变列表数据的钩子&amp;发送给用户。
用于重组/重命名将要发送的内容。
这就是你改变“数据”的地方,这些数据在转换成XML并发送给用户后不久就会发生。
这样的事情应该让你前进:
def alter_list_data_to_serialize(self, request, data):
#self.object_class.lower() is the name you'd like instead of "objects"
data = { self.object_class.lower() : [ element for element in data[ 'objects' ] ] }
return data
我没有对此进行测试,但我正在使用此方法来改变我的回复看起来如何成功。