2012-02-21 7 views
6

が、応答がフォーマットは次のとおりです。django-tastypieオブジェクトのキーを設定することはできますか?ジャンゴ - tastypieを使用して、リソースのリストを取得する際にデフォルトで

{ 
    "meta": { 
     "limit": 20, 
     "next": null, 
     "offset": 0, 
     "previous": null, 
     "total_count": 3 
    }, 
    "objects": [{ 
     "body": "Welcome to my blog!", 
     "id": "1", 
     "pub_date": "2011-05-20T00:46:38", 
     "resource_uri": "/api/v1/entry/1/", 
     "slug": "first-post", 
     "title": "First Post", 
     "user": "/api/v1/user/1/" 
    }, 
    ... 
    ] 
} 

私は、ドキュメントの中に掘って見えたが、私は見つけることができないよう&を見てきました「オブジェクト」キーを変更して返されたアイテムを実際に記述するためのメタオプションまたは設定の任意の種類。たとえば、私は1つのAPI呼び出しの場所のリストと別のAPI呼び出しの場所のリストを持っているとしましょう。私は "場所"と "人"にキーを区別することができるようにしたいと思います。これの本当の理由は、iOSでRestKitを使用していて、複数のマッピングを設定できるようにしたいからです。

+0

私は同じ問題がありました。私はドキュメント、ソースコード、github発行追跡ツールまで掘り下げて何も見つけられなかったので、私は諦めました。私はこれが現時点では不可能だと確信していますが、私は間違っていることを証明したいと思います。 –

答えて

15

リソースフックalter_*を使用して、データの構造を変更することができます。 「場所」を使用して

例のリソースは次のようになります。

class MyLocationsResource(ModelResource): 
    def alter_list_data_to_serialize(self, request, data): 
     data['locations'] = data['objects'] 
     del data['objects'] 
     return data 

    def alter_deserialized_list_data(self, request, data): 
     data['objects'] = data['locations'] 
     del data['locations'] 
     return data 
+0

新しい 'Meta.collection_name'属性は同じことをしますが、今のところ[inconsistent](https://github.com/toastdriven/django-tastypie/pull/467)です。 –

関連する問題