diff --git a/apps/booking/models/services.py b/apps/booking/models/services.py index fd685548..a3ee17ea 100644 --- a/apps/booking/models/services.py +++ b/apps/booking/models/services.py @@ -141,7 +141,7 @@ class LastableService(AbstractBookingService): super().check_whether_booking_available(restaurant_id, date) url = f'{self.url}v1/restaurant/{restaurant_id}/offers' r = requests.get(url, headers=self.get_common_headers(), proxies=self.proxies) - response = json.loads(r.content)['data'] + response = json.loads(r.content).get('data') if not status.is_success(r.status_code) or not response: return False self.response = response diff --git a/apps/booking/views.py b/apps/booking/views.py index 245dbf05..dfa64bb9 100644 --- a/apps/booking/views.py +++ b/apps/booking/views.py @@ -35,9 +35,9 @@ class CheckWhetherBookingAvailable(generics.GenericAPIView): response = { 'available': is_booking_available, - 'type': service.service, + 'type': service.service if service else None, } - response.update({'details': service.response} if service.response else {}) + response.update({'details': service.response} if service and service.response else {}) return Response(data=response, status=200) diff --git a/apps/establishment/models.py b/apps/establishment/models.py index fe81d9ef..2fc63bd5 100644 --- a/apps/establishment/models.py +++ b/apps/establishment/models.py @@ -14,8 +14,8 @@ from django.utils.translation import gettext_lazy as _ from phonenumber_field.modelfields import PhoneNumberField from collection.models import Collection -from main.models import Award, MetaDataContent from location.models import Address +from main.models import Award, MetaDataContent from review.models import Review from utils.models import (ProjectBaseMixin, TJSONField, URLImageMixin, TranslatedFieldsMixin, BaseAttributes) @@ -180,7 +180,8 @@ class EstablishmentQuerySet(models.QuerySet): return self.filter(id__in=subquery_filter_by_distance) \ .annotate_intermediate_public_mark() \ .annotate_mark_similarity(mark=establishment.public_mark) \ - .order_by('mark_similarity') + .order_by('mark_similarity') \ + .distinct('mark_similarity', 'id') else: return self.none()