Nel mio modello Django, ho 10 campi e ci sono 3 campi che sono chiavi esterne. Nei miei dati JSON ricevuti da una richiesta GET, ottengo tutti i campi ma non le chiavi esterne.Come caricare gli elementi di chiavi esterne in Tastypie
Ho anche fatto questo, ma io non sono ancora ottenere quei campi nei dati JSON:
DataFields = MyData._meta.get_all_field_names()
class MyResource(ModelResource):
class Meta:
queryset = MyData.objects.all()
resource_name = 'Myres'
serializer = Serializer(formats=['json'])
filtering = dict(zip(DataFields, [ALL_WITH_RELATIONS for f in DataFields]))
Ad esempio, ho il campo nel modello come city
, ma quel campo non è disponibile in JSON Ne vado.
C'è un modo in cui in JSON posso ottenere automaticamente city:city__name
?
Se faccio questo, allora ottengo la città, ma posso farlo senza definire:
def dehydrate(self, bundle):
bundle.data["city_name"] = bundle.obj.city__name
return bundle
C'è un modo per farlo senza definire alcuna risorsa. Altrimenti ho dovuto fare la risorsa di ogni mio modello in djnago. non è lo spreco di tempo – user825904
Fare risorse aggiuntive sarà la soluzione migliore. Puoi creare risorse minime, tenerle lontane dall'API (non aggiungerle ai tuoi URL) e incorporarle con 'full = True'. Non sarà molto lavoro extra. Altrimenti, il metodo di disidratazione è l'alternativa. – Blake