Domanda

Per impostazione predefinita, quando si utilizza Django-Tastypie e prendendo un elenco di risorse, la risposta è del formato:

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

Ho scavato nella documentazione e ho guardato e guardato, ma non riesco a trovare alcun tipo di meta opzione o impostazione per modificare la chiave "oggetti" per descrivere effettivamente gli elementi restituiti. Ad esempio, supponiamo che io abbia un elenco di luoghi in una chiamata API e un elenco di persone in un'altra. Vorrei poter differenziare la chiave per "posizioni" e "persone". Il vero motivo è perché sto usando Restkit su iOS e voglio essere in grado di impostare più mappature.

È stato utile?

Soluzione

I ganci delle risorse alter_* può essere utilizzato per modificare la struttura dei dati.

Una risorsa di esempio usando "posizioni" sarebbe:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top