AlexNest
@AlexNest
Работаю с Python/Django

Как разделить get-запросы для получения всех объектов и конкретного в APIWiew?

В большинстве случаев нужно получать список всех факультетов:
class FacultyView(APIView):
    def get(self, request):
        faculties = Faculty.objects.all()
        serializer = FacultySerializer(
            instance=faculties,
            many=True
        )
        return Response(serializer.data)

Однако в отдельных случаях нужно выбрать конкретный факультет для вывода подробных данных. и для этого придется создавать отдельный класс/вьюху. Есть ли более оптимальные решения, не плодящие сущности?
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
Для этого вьюсеты придумали :
class FacultyViewSet(
    mixins.ListModelMixin,
    mixins.RetrieveModelMixin,
    GenericViewSet
):
    queryset = Faculty.objects.all()
    serializer_class = FacultySerializer
    permission_classes = (permissions.AllowAny, )

Выведет и список, и детально, и без бойлерплейта приведенного у вас.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы