Как я могу сериализовать объект Django View? - PullRequest
0 голосов
/ 15 октября 2019

Я хочу сериализовать свои контекстные данные, но я получаю эту ошибку: Ошибка типа: не является сериализуемым JSON

Вот мой код:

from django.template.loader import render_to_string

        context = self.get_context_data()
        html = render_to_string('difficult_test.html', context)

        if self.request.is_ajax():
            return http.JsonResponse({"html":html, 'context':context})

        return response

1 Ответ

0 голосов
/ 15 октября 2019

Сериализуются только примитивные типы, у вас есть tests.views.ExamView это объект представления класса в контексте, удалите из контекста несколько элементов, которые имеют объект класса. Вы можете войти, чтобы узнать, сколько объектов класса входит в контекст. Если вам также нужны данные объекта класса, вам нужно сериализовать их вручную

delete self.context['view']

Общий вид Django API имеет get_serializer_context () наподобие

    def get_serializer_context(self):
        """
        Extra context provided to the serializer class.
        """
        return {
           'request': self.request,
           'format': self.format_kwarg,
           'view': self
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...