diff --git a/pairent_backend/pairent_app/urls.py b/pairent_backend/pairent_app/urls.py index 8046550..e4d1450 100644 --- a/pairent_backend/pairent_app/urls.py +++ b/pairent_backend/pairent_app/urls.py @@ -6,7 +6,6 @@ from . import views urlpatterns = format_suffix_patterns([ path("apartaments/", views.ApartamentViewSet.as_view({'get': 'list'})), path("apartament//", views.ApartamentViewSet.as_view({'get': 'retrieve'})), - # TODO: доработать path("apartaments/comparison/", views.ApartamentGetManyViewSet.as_view({'get': 'retrieve'})), # пример: apartaments/comparison/?user_id=1 user_id - id пользователя - path("apartaments/favorite/", views.ApartamentGetManyViewSet.as_view({'get': 'list'})), + path("apartaments/favorite/", views.ApartamentGetManyViewSet.as_view({'get': 'list'})), # пример: apartaments/favorite/?user_id=1 user_id - id пользователя ]) diff --git a/pairent_backend/pairent_app/views.py b/pairent_backend/pairent_app/views.py index 0f70aaa..450576e 100644 --- a/pairent_backend/pairent_app/views.py +++ b/pairent_backend/pairent_app/views.py @@ -25,21 +25,31 @@ class ApartamentViewSet(viewsets.ReadOnlyModelViewSet): # TODO: доработать не рабочее class ApartamentGetManyViewSet(viewsets.ModelViewSet): """Вывод отдельных квартир для сравнения""" - def get_apartaments_id(self): + def get_queryset(self): # получение id квартир для избранного или сравнения 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 + queryset = [] + for i in apartaments_id: + queryset.append(Apartament.objects.get(pk=i)) + + return queryset def retrieve(self, request, *args, **kwargs): - apartaments_id = self.get_apartaments_id + queryset = self.get_queryset() apartaments = [] - for i in apartaments_id: - apartaments.append(ApartamentDetailSerializer(Apartament.objects.get(pk=i)).data) + for i in queryset: + apartaments.append(ApartamentDetailSerializer(i).data) + return Response({'results': apartaments}) + + def list(self, request, *args, **kwargs): + queryset = self.get_queryset() + apartaments = [] + for i in queryset: + apartaments.append(ApartamentListSerializer(i).data) return Response({'results': apartaments}) \ No newline at end of file