W moim modelu Django mam 10 pól i są 3 pola, które są kluczami obcymi. W moich danych JSON, które są odbierane z żądania GET, otrzymuję wszystkie pola, ale nie klucze obce.Jak załadować elementy kluczy obcych w Tastypie
Zrobiłem też, ale ja wciąż nie uzyskanie tych pól w danych 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]))
Na przykład, mam pole w modelu jak city
, ale to pole nie jest dostępny w JSON, który dostaję od tego.
Czy jest jakiś sposób, że w JSON mogę automatycznie uzyskać city:city__name
?
Jeśli mogę to zrobić, to dostać się do miasta, ale można to zrobić bez określenia:
def dehydrate(self, bundle):
bundle.data["city_name"] = bundle.obj.city__name
return bundle
Czy można to zrobić bez definiowania jakiegokolwiek zasobu. W każdym razie, robię zasób mojego modelu w djnago. czy to nie jest strata czasu? – user825904
Dokonywanie dodatkowych zasobów będzie twoim najlepszym wyborem. Możesz tworzyć minimalne zasoby, trzymać je poza interfejsem API (nie dodawać ich do adresów URL) i osadzać je za pomocą 'full = True'. Nie będzie tak dużo dodatkowej pracy. W przeciwnym razie alternatywą jest metoda odwodnienia. – Blake