【发布时间】:2013-11-08 17:37:21
【问题描述】:
如果这不是发布此内容的正确区域,我提前道歉,但我似乎无法在文档或 Stack Overflow 上找到任何帮助。 TastyPie 很棒,我已经能够非常接近所需的 XML 输出。但是,当我想在节点上具有自定义属性时,就会出现问题。除非从头开始编写 API,否则我似乎找不到使用 TastyPie 执行此操作的方法。
例如,假设我有来自 TastyPie 的示例输出(仅摘录):
<media type="list">
<object type="hash">
<filename>filename.mp4</filename>
<id type="integer">62</id>
<name>AE</name>
<position type="integer">0</position>
<product type="integer">65</product>
<type>video</type>
</object>
<object type="hash">
<filename>filename.jpg</filename>
<id type="integer">63</id>
<name>Some Name</name>
<position type="integer">1</position>
<product type="integer">65</product>
<type>image</type>
</object>
</media>
我真正需要的是这个(注意我想向节点添加一个(或多个)自定义属性——在这种情况下,文件名有一个属性):
<media type="list">
<object type="hash">
<filename type="video">filename.mp4</filename>
<id type="integer">62</id>
<name>Some Name</name>
<position type="integer">0</position>
<product type="integer">65</product>
</object>
<object type="hash">
<filename type="image">filename.jpg</filename>
<id type="integer">63</id>
<name>Another Name</name>
<position type="integer">1</position>
<product type="integer">65</product>
</object>
</media>
或者更好的是,这个:
<media type="list">
<object type="hash" format="video" id="62" position="0" product_type="65" filename="filename.mp4" name="Some Name" />
<object type="hash" format="image" id="63" position="1" product_type="65" filename="filename.jpg" name="Another Name" />
</media>
为了自定义 XML 序列化程序以在需要的地方添加属性需要什么? 或者更好的是,告诉它哪些值可以安全地描述为属性而不是节点?我不明白如何将属性添加到输出 XML。任何帮助是极大的赞赏。提前致谢。
【问题讨论】:
-
我已阅读文档,谢谢。但是,基于这些有限的示例,我不明白如何将自定义属性添加到 XML 输出的节点。
-
你需要使用自己的xml序列化器。在 json 示例中,他们使用 simplejson。看看这个wiki.python.org/moin/PythonXml
-
Dan,虽然我很欣赏提供帮助的意愿,但这是 StackOverflow ......我想我正在寻找更多的小例子(带有属性),因为我通过例子学习得最好。我只是不知道如何为 TastyPie 编写自定义序列化程序,以便让我将属性添加到我认为合适的节点。
-
您需要弄清楚如何使用 XML 库来实现。然后在您的 Tastypie 序列化程序中,您只需返回 XML。与他们使用 json 示例的方式类似。我从来没有对 XML 进行序列化,所以很遗憾,我无法为您提供示例。
标签: python xml django tastypie