Как преобразовать экземпляр модели Django в JSON, используя существующий ресурс Tastypie? - PullRequest
0 голосов
/ 11 мая 2019

Эта проблема связана с этой другой проблемой , но вместо этого я хочу преобразовать один экземпляр модели в JSON, используя существующий ресурс Tastypie.

1 Ответ

0 голосов
/ 11 мая 2019

Благодаря подсказке @grimygoop мне удалось создать метод, который может сериализовать любой экземпляр модели Django в JSON, используя связанный ресурс Tastypie. Вот как работает процедура ...

def res_serialize(request, resource, obj):
    data = resource.full_dehydrate(resource.build_bundle(obj=obj, request=request))
    return resource.serialize(None, data, 'application/json')

Чтобы использовать это, вы уже должны были определить класс Resource, а также иметь объект запроса, чтобы он работал должным образом. Затем вы выполните сериализацию следующим образом:

res_serialize(request,ClientResource(),client)

Примечание ClientResource() в приведенном выше вызове - мы должны передать экземпляр Resource, а не просто ссылку на класс. Итак, в приведенном выше примере объект client сериализуется в JSON через связанный класс ресурсов. Это может, например, помочь в пользовательских представлениях, где вы хотите вернуть сериализованный экземпляр объекта.

Кроме того, небольшая модификация этого может обрабатывать наборы запросов вместо отдельных объектов.

...