latenight
latenight

Reputation: 155

Django Rest - Return All Value @api_view

Is there a way to return All Value rather than access array like this UserHistorySerializer(queryset[1])

My Code

@api_view(['GET'])
def get_history(request):
    queryset = User.history.all()
    serializer_class = UserHistorySerializer(queryset[1])
    return Response({"message": serializer_class.data})

I tried to create functions to return value however i got only one Value.

def history_list(queryset):
    value = []
    for data in queryset:
        return data

@parser_classes([MultiPartParser, JSONParser])
@api_view(['GET'])
def get_history(request):
    queryset = User.history.all()
    serializer_class = UserHistorySerializer(history_list(queryset))
    return Response({"message": serializer_class.data})

I also tried to make change function something like below.

def history_list(queryset):
    for data in queryset:
        return [value for value in data]

However, i got error object is not iterable.

I'll appreciate of all ur help. Thanks..

Upvotes: 0

Views: 473

Answers (1)

neverwalkaloner
neverwalkaloner

Reputation: 47364

You can use many=True argument to serialize many objects at once:

@api_view(['GET'])
def get_history(request):
    queryset = User.history.all()
    serializer_class = UserHistorySerializer(queryset, many=True)
    return Response({"message": serializer_class.data})

Upvotes: 2

Related Questions