3

IDと名前を持つ単純なモデルのtastypieにModelResourceがあります。

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>
4

1 に答える 1

3

Resource クラスの「alter_list_data_to_serialize(...)」メソッドをオーバーロードしてみてください。ドキュメント文字列が言うように:

シリアル化されてユーザーに送信される直前にリスト データを変更するためのフック。

送信されるものの側面を再構築/名前変更するのに役立ちます。

そこで、すぐに 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

私はこれをテストしていませんが、この方法を使用して、応答がどのように見えるかをうまく変更しています。

于 2012-03-16T20:56:47.757 に答える