Django rest framework не отображает данные при выполнении фильтрации

Я давно не использовал Django RF и столкнулся с проблемой. Я пытался выполнить object.get() и получил ошибку, которая гласила, что возвращается больше 1 (возвращается 2), поэтому я изменил .get на .filter и это устранило мою проблему с ошибкой, но он не показывает никаких данных при переходе к конечной точке, хотя при печати в консоли он показывает, что я получил набор запросов (но это массив, [, ]). Вот мой ViewSet:

class TeamViewSet(ModelViewSet):
queryset = Team.objects.all()
serializer_class = TeamSerializer
permission_classes = [IsAdminUser]



@action(detail=False, methods=['GET','PUT'], permission_classes=[IsAuthenticated])
def me(self, request):
    # return Response(request.user.id)
    try:
        team = Team.objects.filter(leader__user_id=request.user.id)
        print(team)
    except Team.DoesNotExist:
        team = None
    if request.method == 'GET':
        
        serializer = TeamSerializer(team)
        return Response(serializer.data)
    elif request.method == 'PUT':
        serializer = TeamSerializer(team, data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()
        return Response(serializer.data)

Эту проблему легко исправить, я просто давно не использовал Django RF, Спасибо за любую помощь :)

Я разобрался, просто нужно было включить 'many=True' при создании сериализатора. Новый код для справки:

class TeamViewSet(ModelViewSet):
queryset = Team.objects.all()
serializer_class = TeamSerializer
permission_classes = [IsAdminUser]



@action(detail=False, methods=['GET','PUT'], permission_classes=[IsAuthenticated])
def me(self, request):
    # return Response(request.user.id)
    try:
        team = Team.objects.filter(leader__user_id=request.user.id)
        print(team)
    except Team.DoesNotExist:
        team = None
    if request.method == 'GET':
        
        serializer = TeamSerializer(team, many=True)
        return Response(serializer.data)
    elif request.method == 'PUT':
        serializer = TeamSerializer(team, data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()
        return Response(serializer.data)
Вернуться на верх