Вывод на печать JSON из сериализатора Rest framework

При работе использую ModelViewSet, поэтому основные атрибуты - serializer_class, queryset, но не понятно, с помощью какого атрибута или функции вытащить данные из сериализатора. Задача - взять данные, которые попадают на страницу и их вывести в эксель-файл.

serializers.py

class CourseListSerializer(serializers.ModelSerializer):
    """Сериализатор для отображения кураторов в списке"""
    disciplines = serializers.SlugRelatedField(slug_field='name', queryset=Discipline.objects.all(), many=True)
    supervisor = serializers.StringRelatedField()

    class Meta:
        model = Course
        fields = ['id', 'name', 'disciplines', 'supervisor']

views.py

class CourseViewSet(viewsets.ModelViewSet):
    """Отображение, создание, просмотр, редактирование и удаление курсов"""
    queryset = Course.objects.all()
    permission_classes = (IsAdministratorOrSUPEROrReadOnly,)

    def get_serializer_class(self, *args, **kwargs):
        if self.action == 'create' or self.action == 'update':
            return CourseSerializer
        else:
            return CourseListSerializer

urls.py, если вдруг нужно

router = routers.SimpleRouter()
router.register(r'courses', CourseViewSet)
router.register(r'groups', GroupsViewSet)
router.register(r'supervisors', SupervisorViewSet)
router.register(r'students', StudentsViewSet)
router.register(r'disciplines', DisciplineViewSet)

urlpatterns = [
    path('', include(router.urls)),    # 127.0.0.1/api/v1/courses, 127.0.0.1/api/v1/groups


]

models.py

class Course(models.Model):
    name = models.CharField(max_length=250, null=True, verbose_name='Направление подготовки')
    disciplines = models.ManyToManyField('Discipline', verbose_name='Дисциплины')
    supervisor = models.ForeignKey("Supervisor", related_name='courses', default=1, on_delete=models.SET_DEFAULT,
                                   verbose_name='Куратор')

    class Meta:
        verbose_name = 'Направление подготовки'
        verbose_name_plural = 'Направления подготовки'

    def __str__(self):
        return self.name

На ум приходит только прямой запрос на этот апи, как-будто я парсер делаю, но есть ощущение, что не вижу под носом специальную функцию из rest фреймворка для обработки данных.

Вернуться на верх