From a0e68beb5d58c7fd42412596351fbd41f041e6ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B5=D0=BD=D0=B8=D1=81=20=D0=A1=D0=B0=D1=80=D0=B0?= =?UTF-8?q?=D0=BF=D1=83=D0=BB=D0=BE=D0=B2?= Date: Tue, 9 May 2023 19:05:47 +1000 Subject: [PATCH] remade ApartamentGetManyViewSet --- pairent_backend/pairent_app/models.py | 1 + pairent_backend/pairent_app/views.py | 59 +++++---------------------- 2 files changed, 12 insertions(+), 48 deletions(-) diff --git a/pairent_backend/pairent_app/models.py b/pairent_backend/pairent_app/models.py index b3e950c..972f0ad 100644 --- a/pairent_backend/pairent_app/models.py +++ b/pairent_backend/pairent_app/models.py @@ -79,6 +79,7 @@ class Photo(models.Model): verbose_name = "Фотография" verbose_name_plural = "Фотографии" +# TODO: Add auth class User(models.Model): """Тестовая модель данных для избранных и сравнения""" favorites_apartaments = models.CharField(max_length=100, verbose_name="Избранные квартиры") diff --git a/pairent_backend/pairent_app/views.py b/pairent_backend/pairent_app/views.py index 1154dd4..0f70aaa 100644 --- a/pairent_backend/pairent_app/views.py +++ b/pairent_backend/pairent_app/views.py @@ -22,26 +22,10 @@ class ApartamentViewSet(viewsets.ReadOnlyModelViewSet): return ApartamentDetailSerializer -# class ApartamentGetManyViewSet(viewsets.ViewSet): -# def retrieve(self, request): -# user_id = request.query_params.get("user_id", None) # получение id пользователя -# apartaments = [] -# apartaments_id = User.objects.get(pk=user_id).apartaments_for_comparison.split(',') # получение id квартир -# for i in apartaments_id: -# apartaments.append(ApartamentDetailSerializer(Apartament.objects.get(pk=i)).data) - -# return Response({'results': apartaments}) -# def list(self, request): -# pk = request.query_params.get("pk", None) # получение id пользователя -# apartaments = [] -# apartaments_id = User.objects.get(pk=pk).apartaments_for_comparison.split(',') # получение id квартир - - - -# TODO: доработать -class ApartamentGetManyViewSet(viewsets.ReadOnlyModelViewSet): +# TODO: доработать не рабочее +class ApartamentGetManyViewSet(viewsets.ModelViewSet): """Вывод отдельных квартир для сравнения""" - def get_queryset(self): + def get_apartaments_id(self): pk = self.request.query_params.get("pk", None) # получение id пользователя queryset = [] @@ -50,33 +34,12 @@ class ApartamentGetManyViewSet(viewsets.ReadOnlyModelViewSet): elif self.action == "list": # если для страницы избранного apartaments_id = User.objects.get(pk=pk).favorites_apartaments.split(',') # получение id квартир - for i in apartaments_id: - queryset.append(Apartament.objects.get(pk=i)) - - return queryset + return apartaments_id - serializer_class = ApartamentDetailSerializer - - # def retrieve(self, request, *args, **kwargs): - # pk = request.query_params.get("pk", None) # получение id пользователя - # apartaments = [] - # print(f"pk: {pk}") - - # if request.query_params.get("page") == "comparison": # если для страницы сравнения - # apartaments_id = User.objects.get(pk=pk).apartaments_for_comparison.split(',') # получение id квартир - # elif request.query_params.get("page") == "favorites": # если для страницы избранного - # apartaments_id = User.objects.get(pk=pk).favorites_apartaments.split(',') # получение id квартир - - # for i in apartaments_id: - # apartaments.append(ApartamentDetailSerializer(Apartament.objects.get(pk=i)).data) - - # return Response({"results": apartaments}) - - - - # def retrieve(self, request, *args, **kwargs): - # apartaments_id = request.COOKIES["apartament_comparison_id"].split(',') # получение куки пример (123,453) - # apartaments = [] - # for i in apartaments_id: - # apartaments.append(ApartamentDetailSerializer(Apartament.objects.get(pk=i)).data) - # return Response({"results": apartaments}) \ No newline at end of file + 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}) + \ No newline at end of file