Сериализация двух наборов запросов с помощью DjangoRestFramework - PullRequest
0 голосов
/ 29 ноября 2018

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

class GetDetails(APIView):   
    def get(self, request):

        todays_date = time.strftime('%Y-%m-%d')
       #Get results according to specified criteria
        queryset = People.objects.filter(date = todays_date, assigned_to = 1)
       #Check if any querysets are available
        if queryset:
       #Iterate through each queryset, serialize and return a response
            for person in queryset:
                serializer=ASerializer(person)

            return Response(serializer.data)
        else:
            return Response({'TODO':'TODO'})

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Прежде всего то, как вы выполняете набор запросов, неверно, вы перебираете набор запросов с переменной person и вообще не используете переменную person.

А для вопроса используйте атрибут many=Trueсериализатора.Он создаст список сериализованных предметов для вас.

вот так:

class GetDetails(APIView):   
    def get(self, request):
        todays_date = time.strftime('%Y-%m-%d')
        queryset = People.objects.filter(date = todays_date, assigned_to = 1)
        return Response(ASerializer(many=True).to_representation(queryset))
0 голосов
/ 29 ноября 2018

Может быть, ваш код должен быть таким:

    def get(self, request):
        todays_date = time.strftime('%Y-%m-%d')
        queryset = People.objects.filter(date = todays_date, assigned_to = 1)
        if queryset.exists():  # Lazy check if entry Exists.
            serializer=ASerializer(queryset, many=True)
            return Response(serializer.data)
        else:
            return Response({'TODO':'TODO'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...