16 KiB
16 KiB
Модель статьи
- ObjectTypeNew:
- Представляет типы недвижимости.
object_type(CharField): Тип недвижимости (выбор из предустановленных значений).name(CharField): Название подтипа объекта.- Связь с
Userдля автора объекта. - Имеет поля времени создания и обновления.
- PurposePremises:
- Представляет назначение объектов недвижимости.
name(CharField): Название назначения объекта.- Имеет поля времени создания и обновления.
- Room:
- Представляет помещение на этаже.
room_number(CharField): Номер помещения.plan_number(CharField): Номер на поэтажном плане.entrance(CharField): Тип входа (выбор из предустановленных значений).area(DecimalField): Площадь помещения.- Связь с изображением помещения.
- Имеет поля времени создания и обновления.
- Floor:
- Представляет этажи в подъезде.
floor_number(IntegerField): Номер этажа.- Связь с изображением плана этажа.
- Имеет поля времени создания и обновления.
- Entrance:
- Представляет подъезды в здании.
entrance_number(IntegerField): Номер подъезда.- Связь с изображением плана подъезда.
- Имеет поля времени создания и обновления.
- Building:
- Представляет здания.
nomber_building(CharField): Номер дома.building_name(CharField): Название здания.year_built(YearField): Год постройки здания.- Имеет поля времени создания и обновления.
- Territory:
- Представляет территории.
district(CharField): Район.microdistrict(CharField): Микрорайон.- Имеет поля времени создания и обновления.
- Cluster:
- Представляет кластеры.
region(CharField): Регион.city(CharField): Город.- Имеет поля времени создания и обновления.
- Object:
- Представляет объект недвижимости.
address(CharField): Адрес объекта.cadastre_number(CharField): Кадастровый номер.- Связь с типом объекта, назначением объекта, помещениями, этажами, подъездами, зданиями, территориями, и кластерами.
- Имеет поля времени создания и обновления.
Сериализатор
- ObjectTypeNewSerializer
- objectType (CharField): Строковое представление типа объекта.
- nameObjectType (CharField): Название типа объекта.
- author (AuthorSerializer): Сериализатор для автора объекта.
- createdAt (DateTimeField): Дата и время создания объекта.
- updatedAt (DateTimeField): Дата и время последнего обновления объекта.
- PurposePremisesSerializer
- namePurposePremises (CharField): Название назначения помещения.
- author (AuthorSerializer): Сериализатор для автора назначения помещения.
- createdAt (DateTimeField): Дата и время создания назначения помещения.
- updatedAt (DateTimeField): Дата и время последнего обновления назначения помещения.
- RoomSerializer
- roomNumber (CharField): Номер помещения.
- roomEntrance (CharField): Вход помещения.
- roomArea (CharField): Площадь помещения.
- author (AuthorSerializer): Сериализатор для автора помещения.
- createdAt (DateTimeField): Дата и время создания помещения.
- updatedAt (DateTimeField): Дата и время последнего обновления помещения.
- FloorSerializer
- floorNumber (IntegerField): Номер этажа.
- floor_plan_image (ImagePropirtiesFloorPlanSerializer): Сериализатор для изображений плана этажа.
- author (AuthorSerializer): Сериализатор для автора этажа.
- createdAt (DateTimeField): Дата и время создания этажа.
- updatedAt (DateTimeField): Дата и время последнего обновления этажа.
- EntranceSerializer
- entranceNumber (IntegerField): Номер подъезда.
- entrancePlanImage (ImagePropirtiesEntrancePlanSerializer): Сериализатор для изображений плана подъезда.
- author (AuthorSerializer): Сериализатор для автора подъезда.
- createdAt (DateTimeField): Дата и время создания подъезда.
- updatedAt (DateTimeField): Дата и время последнего обновления подъезда.
- BuildingSerializer
- nombeBuilding (CharField): Номер здания.
- buildingName (CharField): Название здания.
- yearBuilt (CharField): Год постройки здания.
- author (AuthorSerializer): Сериализатор для автора здания.
- createdAt (DateTimeField): Дата и время создания здания.
- updatedAt (DateTimeField): Дата и время последнего обновления здания.
- TerritorySerializer
- territoryDistrict (CharField): Район территории.
- territoryMicrodistrict (CharField): Микрорайон территории.
- author (AuthorSerializer): Сериализатор для автора территории.
- createdAt (DateTimeField): Дата и время создания территории.
- updatedAt (DateTimeField): Дата и время последнего обновления территории.
- ClusterSerializer
- clusterRegion (CharField): Регион кластера.
- clusterCity (CharField): Город кластера.
- author (AuthorSerializer): Сериализатор для автора кластера.
- createdAt (DateTimeField): Дата и время создания кластера.
- updatedAt (DateTimeField): Дата и время последнего обновления кластера.
- ObjectSerializer
- objectAddress (CharField): Адрес объекта.
- cadastreNumber (CharField): Кадастровый номер объекта.
- purposePremises (CharField): Назначение помещения объекта.
- technicalFeatures (CharField): Технические особенности объекта.
- objectFiles (FileField): Файлы, связанные с объектом.
- objectImages (ImageField): Изображения объекта.
- objectVideos (FileField): Видео, связанные с объектом.
- room (PrimaryKeyRelatedField): Связанные помещения объекта.
- floor (PrimaryKeyRelatedField): Связанные этажи объекта.
- entrance (PrimaryKeyRelatedField): Связанные подъезды объекта.
- building (PrimaryKeyRelatedField): Связанные здания объекта.
- territory (PrimaryKeyRelatedField): Связанные территории объекта.
- cluster (PrimaryKeyRelatedField): Связанные кластеры объекта.
- author (AuthorSerializer): Сериализатор для автора объекта.
- createdAt (DateTimeField): Дата и время создания объекта.
- updatedAt (DateTimeField): Дата и время последнего обновления объекта.
Маршрутизатор
- properties-objecttypenew/ - URL для работы с типами объектов:
- GET: Получить список всех типов объектов или создать новый тип объекта.
- POST: Создать новый тип объекта.
- properties-purposepremises/ - URL для работы с назначениями помещений:
- GET: Получить список всех назначений помещений или создать новое назначение помещения.
- POST: Создать новое назначение помещения.
- properties-room/ - URL для работы с помещениями:
- GET: Получить список всех помещений или создать новое помещение.
- POST: Создать новое помещение.
- properties-floor/ - URL для работы с этажами:
- GET: Получить список всех этажей или создать новый этаж.
- POST: Создать новый этаж.
- properties-entrance/ - URL для работы с подъездами:
- GET: Получить список всех подъездов или создать новый подъезд.
- POST: Создать новый подъезд.
- properties-building/ - URL для работы со зданиями:
- GET: Получить список всех зданий или создать новое здание.
- POST: Создать новое здание.
- properties-territory/ - URL для работы с территориями:
- GET: Получить список всех территорий или создать новую территорию.
- POST: Создать новую территорию.
- properties-cluster/ - URL для работы с кластерами:
- GET: Получить список всех кластеров или создать новый кластер.
- POST: Создать новый кластер.
- properties-object/ - URL для работы с объектами:
- GET: Получить список всех объектов или создать новый объект.
- POST: Создать новый объект.
Контроллер
- ObjectTypeNewViewSet:
list: Получает список всех типов объектов или создает новый тип объекта.create: Создает новый тип объекта.retrieve: Получает конкретный тип объекта по его идентификатору.update: Обновляет данные о типе объекта.destroy: Удаляет тип объекта.
- PurposePremisesViewSet:
list: Получает список всех назначений помещений или создает новое назначение помещения.create: Создает новое назначение помещения.retrieve: Получает конкретное назначение помещения по его идентификатору.update: Обновляет данные о назначении помещения.destroy: Удаляет назначение помещения.
- RoomViewSet:
list: Получает список всех помещений или создает новое помещение.create: Создает новое помещение.retrieve: Получает конкретное помещение по его идентификатору.update: Обновляет данные о помещении.destroy: Удаляет помещение.
- FloorViewSet:
list: Получает список всех этажей или создает новый этаж.create: Создает новый этаж.retrieve: Получает конкретный этаж по его идентификатору.update: Обновляет данные об этаже.destroy: Удаляет этаж.
- EntranceViewSet:
list: Получает список всех подъездов или создает новый подъезд.create: Создает новый подъезд.retrieve: Получает конкретный подъезд по его идентификатору.update: Обновляет данные о подъезде.destroy: Удаляет подъезд.
- BuildingViewSet:
list: Получает список всех зданий или создает новое здание.create: Создает новое здание.retrieve: Получает конкретное здание по его идентификатору.update: Обновляет данные о здании.destroy: Удаляет здание.
- TerritoryViewSet:
list: Получает список всех территорий или создает новую территорию.create: Создает новую территорию.retrieve: Получает конкретную территорию по ее идентификатору.update: Обновляет данные о территории.destroy: Удаляет территорию.
- ClusterViewSet:
list: Получает список всех кластеров или создает новый кластер.create: Создает новый кластер.retrieve: Получает конкретный кластер по его идентификатору.update: Обновляет данные о кластере.destroy: Удаляет кластер.
- ObjectViewSet:
list: Получает список всех объектов или создает новый объект.create: Создает новый объект.retrieve: Получает конкретный объект по его идентификатору.update: Обновляет данные об объекте.destroy: Удаляет объект.
Проверка введенных данных
- validate_year(value):
- Это функция-валидатор, которая принимает значение года в виде строки.
- Она проверяет, что длина значения равна 4 символам и что значение состоит только из цифр.
- Если условия не соблюдаются, функция поднимает исключение ValidationError с соответствующим сообщением об ошибке.
- YearField(models.CharField):
- Это класс, который определяет поле модели Django для хранения года.
- Он наследуется от CharField и добавляет к нему функциональность валидации года.
- В конструкторе класса YearField устанавливаются максимальная длина поля в 4 символа и добавляется список валидаторов, включая validate_year.