Question

Par défaut, lors de l'utilisation de django-tastypie et de la récupération d'une liste de ressources, la réponse est au format:

{
    "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/"
    },
    ...
    ]
}

J'ai fouillé dans la documentation et regardé et regardé, mais je n'arrive pas à trouver une sorte d'option méta ou de paramètre pour changer la clé "objets" pour décrire réellement les éléments retournés.Par exemple, disons que j'ai une liste d'emplacements dans un appel d'API et une liste de personnes dans un autre.J'aimerais pouvoir différencier la clé en "lieux" et "personnes".La vraie raison à cela est que j'utilise RestKit sur iOS et que je souhaite pouvoir configurer plusieurs mappages.

Était-ce utile?

La solution

Les crochets de ressources alter_ * peut être utilisé pour modifier la structure des données.

Un exemple de ressource utilisant des "emplacements" serait:

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top