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.