remade ApartamentGetManyViewSet

This commit is contained in:
Денис Сарапулов 2023-05-09 19:05:47 +10:00
parent af28414bba
commit a0e68beb5d
2 changed files with 12 additions and 48 deletions

View File

@ -79,6 +79,7 @@ class Photo(models.Model):
verbose_name = "Фотография" verbose_name = "Фотография"
verbose_name_plural = "Фотографии" verbose_name_plural = "Фотографии"
# TODO: Add auth
class User(models.Model): class User(models.Model):
"""Тестовая модель данных для избранных и сравнения""" """Тестовая модель данных для избранных и сравнения"""
favorites_apartaments = models.CharField(max_length=100, verbose_name="Избранные квартиры") favorites_apartaments = models.CharField(max_length=100, verbose_name="Избранные квартиры")

View File

@ -22,26 +22,10 @@ class ApartamentViewSet(viewsets.ReadOnlyModelViewSet):
return ApartamentDetailSerializer return ApartamentDetailSerializer
# class ApartamentGetManyViewSet(viewsets.ViewSet): # TODO: доработать не рабочее
# def retrieve(self, request): class ApartamentGetManyViewSet(viewsets.ModelViewSet):
# 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):
"""Вывод отдельных квартир для сравнения""" """Вывод отдельных квартир для сравнения"""
def get_queryset(self): def get_apartaments_id(self):
pk = self.request.query_params.get("pk", None) # получение id пользователя pk = self.request.query_params.get("pk", None) # получение id пользователя
queryset = [] queryset = []
@ -50,33 +34,12 @@ class ApartamentGetManyViewSet(viewsets.ReadOnlyModelViewSet):
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 квартир
for i in apartaments_id: return apartaments_id
queryset.append(Apartament.objects.get(pk=i))
return queryset
serializer_class = ApartamentDetailSerializer def retrieve(self, request, *args, **kwargs):
apartaments_id = self.get_apartaments_id
# def retrieve(self, request, *args, **kwargs): apartaments = []
# pk = request.query_params.get("pk", None) # получение id пользователя for i in apartaments_id:
# apartaments = [] apartaments.append(ApartamentDetailSerializer(Apartament.objects.get(pk=i)).data)
# print(f"pk: {pk}") return Response({'results': apartaments})
# 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})