from rest_framework import viewsets from rest_framework.response import Response from rest_framework.views import APIView from .models import Apartament, User from .serializer import (ApartamentListSerializer, ApartamentDetailSerializer) class ApartamentViewSet(viewsets.ReadOnlyModelViewSet): """Вывод списка квартир или отдельной квартиры""" def get_queryset(self): apartaments = Apartament.objects.all() print(apartaments) return apartaments def get_serializer_class(self): if self.action == 'list': return ApartamentListSerializer elif self.action == "retrieve": return ApartamentDetailSerializer # TODO: доработать не рабочее class ApartamentGetManyViewSet(viewsets.ModelViewSet): """Вывод отдельных квартир для сравнения""" def get_apartaments_id(self): pk = self.request.query_params.get("pk", None) # получение id пользователя queryset = [] if self.action == "retrieve": # если для страницы сравнения apartaments_id = User.objects.get(pk=pk).apartaments_for_comparison.split(',') # получение id квартир elif self.action == "list": # если для страницы избранного apartaments_id = User.objects.get(pk=pk).favorites_apartaments.split(',') # получение id квартир return apartaments_id def retrieve(self, request, *args, **kwargs): apartaments_id = self.get_apartaments_id apartaments = [] for i in apartaments_id: apartaments.append(ApartamentDetailSerializer(Apartament.objects.get(pk=i)).data) return Response({'results': apartaments})