Сериализация списка вопросов и возврат в виде JSON - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь сериализовать список объектов, но я получаю ошибку,

Как я могу сериализовать этот список объектов?Спасибо

       ids = request.data.__getitem__("ids")
       questions_array = []
       for id in ids:
           questions = Question.objects.filter(pk=id)
           questions_array.append(questions)

       serializer = QuestionSerializer(questions_array, many=True)
       return Response(serializer.data)

Я всегда получаю эту ошибку: TypeError: init () получил неожиданный аргумент ключевого слова 'fields'

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Вы передали набор запросов в списке, что очень неправильно. Вы можете сделать что-то вроде:


for id in ids:
    questions = Question.objects.filter(pk=id).first() #so here you will 
# get an obejct instead of queryset
    questions_array.append(questions)

serializer = QuestionSerializer(questions_array, many=True)
return Response(serializer.data)
0 голосов
/ 17 июня 2019

как насчет сериализации непосредственно QuerySet:

    questions  = Question.objects.filter(pk__in=[1, 4, 7])

    data = list(questions.values('id',
                              'first_field',
                              'second_field',
                              '....'
                              ))

    return JsonResponse({"data": data,}, safe=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...