Я новичок в Django Rest Framework и занимаюсь этим вопросом, но я не могу понять его, может ли кто-нибудь помочь мне решить его?

Резюме: Расширение проекта Django с помощью Django REST Framework для простого готового приложения бронирования, которое имеет: - Объект листинга с двумя типами - booking_engine.

модели :

  • У апартаментов (single_unit) есть информация о бронировании (цена), непосредственно связанная с ним.

  • Hotels(multi-unit) имеют информацию о бронировании (цена), связанную с каждым из их HotelRoomTypes. - фильтрация объявлений и возврат JSON ответа с доступными единицами на основе критериев поиска. - должна обрабатывать большой набор данных объявлений. Имеется предварительно созданная структура для отелей/апартаментов (может быть изменена или расширена). База данных предварительно заполнена информацией - db.sqlite3. суперпользователь имя пользователя: admin пароль: admin Мы должны иметь возможность блокировать дни (бронировать) для каждой квартиры или номера в отеле. Должна быть создана новая модель для заблокированных (зарезервированных) дней НОВАЯ конечная точка, где мы будем получать доступные апартаменты и отели на основе: доступные дни (диапазон дат, например: "с 2021-12-09 по 2021-12-12") - Апартаменты не должны иметь ни одного заблокированного дня внутри диапазона - В отеле должен быть доступен хотя бы 1 номер из любого типа HotelRoomType. max_price (100): Цена квартиры должна быть ниже max_price. Отель должен иметь хотя бы 1 номер без заблокированных дней в диапазоне с ценой ниже max_price. Возвращенные объекты должны быть отсортированы от самой низкой до самой высокой цены. Отели должны отображать цену самого дешевого HotelRoomType с доступным HotelRoom. Начальная настройка проекта git clone https://bitbucket.org/staykeepersdev/bookingengine.git. python -m venv venv pip install -r requirements.txt python manage.py runserver Пример тестового случая: Для покрытия большего количества тестовых примеров нам понадобится как минимум один отель с 3 типами номеров: Первый с ценой=50 (ниже max_price) с заблокированным днем внутри критерия поиска для всех номеров (может быть 1 номер). Второй с ценой=60 (ниже max_price) с заблокированным днем внутри критерия поиска для одного из нескольких номеров Третий с ценой 200 (выше max_price)

Пример запроса:

http://localhost:8000/api/v1/units/?max_price=100&check_in=2021-12-09&check_out=2021-12-12

Response example:
{
    "items": [
        {
            "listing_type": "Apartment",
            "title": "Luxurious Studio",
            "country": "UK",
            "city": "London",
            "price": "40"

        },
        {
            "listing_type": "Hotel",
            "title": "Hotel Lux 3***",
            "country": "BG",
            "city": "Sofia",
            "price": "60" # This the price of the first Hotel Room Type with a Room without blocked days in the range

        },
        {
            "listing_type": "Apartment",
            "title": "Excellent 2 Bed Apartment Near Tower Bridge",
            "country": "UK",
            "city": "London",
            "price": "90"
        },
    ]

}

Вернуться на верх