Вывод на печать 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 фреймворка для обработки данных.