completed ApartamentGetManyViewSet
This commit is contained in:
parent
f00635ef7c
commit
229ce9ecb3
|
@ -6,7 +6,6 @@ from . import views
|
||||||
urlpatterns = format_suffix_patterns([
|
urlpatterns = format_suffix_patterns([
|
||||||
path("apartaments/", views.ApartamentViewSet.as_view({'get': 'list'})),
|
path("apartaments/", views.ApartamentViewSet.as_view({'get': 'list'})),
|
||||||
path("apartament/<int:pk>/", views.ApartamentViewSet.as_view({'get': 'retrieve'})),
|
path("apartament/<int:pk>/", 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/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 пользователя
|
||||||
])
|
])
|
||||||
|
|
|
@ -25,21 +25,31 @@ class ApartamentViewSet(viewsets.ReadOnlyModelViewSet):
|
||||||
# TODO: доработать не рабочее
|
# TODO: доработать не рабочее
|
||||||
class ApartamentGetManyViewSet(viewsets.ModelViewSet):
|
class ApartamentGetManyViewSet(viewsets.ModelViewSet):
|
||||||
"""Вывод отдельных квартир для сравнения"""
|
"""Вывод отдельных квартир для сравнения"""
|
||||||
def get_apartaments_id(self):
|
def get_queryset(self): # получение id квартир для избранного или сравнения
|
||||||
pk = self.request.query_params.get("pk", None) # получение id пользователя
|
pk = self.request.query_params.get("pk", None) # получение id пользователя
|
||||||
queryset = []
|
|
||||||
|
|
||||||
if self.action == "retrieve": # если для страницы сравнения
|
if self.action == "retrieve": # если для страницы сравнения
|
||||||
apartaments_id = User.objects.get(pk=pk).apartaments_for_comparison.split(',') # получение id квартир
|
apartaments_id = User.objects.get(pk=pk).apartaments_for_comparison.split(',') # получение id квартир
|
||||||
elif self.action == "list": # если для страницы избранного
|
elif self.action == "list": # если для страницы избранного
|
||||||
apartaments_id = User.objects.get(pk=pk).favorites_apartaments.split(',') # получение id квартир
|
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):
|
def retrieve(self, request, *args, **kwargs):
|
||||||
apartaments_id = self.get_apartaments_id
|
queryset = self.get_queryset()
|
||||||
apartaments = []
|
apartaments = []
|
||||||
for i in apartaments_id:
|
for i in queryset:
|
||||||
apartaments.append(ApartamentDetailSerializer(Apartament.objects.get(pk=i)).data)
|
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})
|
return Response({'results': apartaments})
|
||||||
|
|
Loading…
Reference in New Issue