legacy/pairent_backend/pairent_app/views.py

45 lines
1.8 KiB
Python
Raw Normal View History

from rest_framework import viewsets
2023-05-07 11:48:53 +02:00
from rest_framework.response import Response
from rest_framework.views import APIView
2023-05-09 10:32:18 +02:00
from .models import Apartament, User
from .serializer import (ApartamentListSerializer,
ApartamentDetailSerializer)
2023-05-01 12:39:34 +02:00
class ApartamentViewSet(viewsets.ReadOnlyModelViewSet):
"""Вывод списка квартир или отдельной квартиры"""
2023-05-01 12:39:34 +02:00
def get_queryset(self):
2023-05-01 12:39:34 +02:00
apartaments = Apartament.objects.all()
print(apartaments)
return apartaments
def get_serializer_class(self):
if self.action == 'list':
return ApartamentListSerializer
elif self.action == "retrieve":
2023-05-07 11:48:53 +02:00
return ApartamentDetailSerializer
2023-05-09 11:05:47 +02:00
# TODO: доработать не рабочее
class ApartamentGetManyViewSet(viewsets.ModelViewSet):
2023-05-07 11:48:53 +02:00
"""Вывод отдельных квартир для сравнения"""
2023-05-09 11:05:47 +02:00
def get_apartaments_id(self):
2023-05-09 10:32:18 +02:00
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 квартир
2023-05-09 11:05:47 +02:00
return apartaments_id
2023-05-09 10:32:18 +02:00
2023-05-09 11:05:47 +02:00
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})