6

デフォルトでは、django-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/"
    },
    ...
    ]
}

ドキュメントを掘り下げて調べてみましたが、返されたアイテムを実際に説明するために「オブジェクト」キーを変更するためのメタオプションまたは設定が見つからないようです。たとえば、ある API 呼び出しに場所のリストがあり、別の API 呼び出しに人のリストがあるとします。「場所」と「人」のキーを区別できるようにしたいです。これの本当の理由は、私が iOS で RestKit を使用していて、複数のマッピングを設定できるようにしたいからです。

4

1 に答える 1

15

Resource フックの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
于 2012-02-21T17:11:41.847 に答える