This commit is contained in:
2024-05-14 16:58:27 +03:00
parent 2762ac794a
commit 7988103495
13 changed files with 403 additions and 356 deletions

View File

@@ -51,71 +51,79 @@
- Имеет поля времени создания и обновления.
## Сериализатор
1. **ObjectTypeNewSerializer**
- objectType (CharField): Строковое представление типа объекта.
- nameObjectType (CharField): Название типа объекта.
- author (AuthorSerializer): Сериализатор для автора объекта.
- createdAt (DateTimeField): Дата и время создания объекта.
- updatedAt (DateTimeField): Дата и время последнего обновления объекта.
- `objectType` (CharField): Строковое представление типа объекта.
- `nameObjectType` (CharField): Название типа объекта.
- `author` (AuthorSerializer): Сериализатор для автора объекта.
- `createdAt` (DateTimeField): Дата и время создания объекта.
- `updatedAt` (DateTimeField): Дата и время последнего обновления объекта.
2. **PurposePremisesSerializer**
- namePurposePremises (CharField): Название назначения помещения.
- author (AuthorSerializer): Сериализатор для автора назначения помещения.
- createdAt (DateTimeField): Дата и время создания назначения помещения.
- updatedAt (DateTimeField): Дата и время последнего обновления назначения помещения.
- `namePurposePremises` (CharField): Название назначения помещения.
- `author` (AuthorSerializer): Сериализатор для автора назначения помещения.
- `createdAt` (DateTimeField): Дата и время создания назначения помещения.
- `updatedAt` (DateTimeField): Дата и время последнего обновления назначения помещения.
3. **RoomSerializer**
- roomNumber (CharField): Номер помещения.
- roomEntrance (CharField): Вход помещения.
- roomArea (CharField): Площадь помещения.
- author (AuthorSerializer): Сериализатор для автора помещения.
- createdAt (DateTimeField): Дата и время создания помещения.
- updatedAt (DateTimeField): Дата и время последнего обновления помещения.
- `roomNumber` (CharField): Номер помещения.
- `roomEntrance` (CharField): Вход помещения.
- `roomArea` (CharField): Площадь помещения.
- `author` (AuthorSerializer): Сериализатор для автора помещения.
- `createdAt` (DateTimeField): Дата и время создания помещения.
- `updatedAt` (DateTimeField): Дата и время последнего обновления помещения.
4. **FloorSerializer**
- floorNumber (IntegerField): Номер этажа.
- floor_plan_image (ImagePropirtiesFloorPlanSerializer): Сериализатор для изображений плана этажа.
- author (AuthorSerializer): Сериализатор для автора этажа.
- createdAt (DateTimeField): Дата и время создания этажа.
- updatedAt (DateTimeField): Дата и время последнего обновления этажа.
- `floorNumber` (IntegerField): Номер этажа.
- `floor_plan_image` (ImagePropirtiesFloorPlanSerializer): Сериализатор для изображений плана этажа.
- `author` (AuthorSerializer): Сериализатор для автора этажа.
- `createdAt` (DateTimeField): Дата и время создания этажа.
- `updatedAt` (DateTimeField): Дата и время последнего обновления этажа.
5. **EntranceSerializer**
- entranceNumber (IntegerField): Номер подъезда.
- entrancePlanImage (ImagePropirtiesEntrancePlanSerializer): Сериализатор для изображений плана подъезда.
- author (AuthorSerializer): Сериализатор для автора подъезда.
- createdAt (DateTimeField): Дата и время создания подъезда.
- updatedAt (DateTimeField): Дата и время последнего обновления подъезда.
- `entranceNumber` (IntegerField): Номер подъезда.
- `entrancePlanImage` (ImagePropirtiesEntrancePlanSerializer): Сериализатор для изображений плана подъезда.
- `author` (AuthorSerializer): Сериализатор для автора подъезда.
- `createdAt` (DateTimeField): Дата и время создания подъезда.
- `updatedAt` (DateTimeField): Дата и время последнего обновления подъезда.
6. **BuildingSerializer**
- nombeBuilding (CharField): Номер здания.
- buildingName (CharField): Название здания.
- yearBuilt (CharField): Год постройки здания.
- author (AuthorSerializer): Сериализатор для автора здания.
- createdAt (DateTimeField): Дата и время создания здания.
- updatedAt (DateTimeField): Дата и время последнего обновления здания.
- `nombeBuilding` (CharField): Номер здания.
- `buildingName` (CharField): Название здания.
- `yearBuilt` (CharField): Год постройки здания.
- `author` (AuthorSerializer): Сериализатор для автора здания.
- `createdAt` (DateTimeField): Дата и время создания здания.
- `updatedAt` (DateTimeField): Дата и время последнего обновления здания.
7. **TerritorySerializer**
- territoryDistrict (CharField): Район территории.
- territoryMicrodistrict (CharField): Микрорайон территории.
- author (AuthorSerializer): Сериализатор для автора территории.
- createdAt (DateTimeField): Дата и время создания территории.
- updatedAt (DateTimeField): Дата и время последнего обновления территории.
- `territoryDistrict` (CharField): Район территории.
- `territoryMicrodistrict` (CharField): Микрорайон территории.
- `author` (AuthorSerializer): Сериализатор для автора территории.
- `createdAt` (DateTimeField): Дата и время создания территории.
- `updatedAt` (DateTimeField): Дата и время последнего обновления территории.
8. **ClusterSerializer**
- clusterRegion (CharField): Регион кластера.
- clusterCity (CharField): Город кластера.
- author (AuthorSerializer): Сериализатор для автора кластера.
- createdAt (DateTimeField): Дата и время создания кластера.
- updatedAt (DateTimeField): Дата и время последнего обновления кластера.
- `clusterRegion` (CharField): Регион кластера.
- `clusterCity` (CharField): Город кластера.
- `author` (AuthorSerializer): Сериализатор для автора кластера.
- `createdAt` (DateTimeField): Дата и время создания кластера.
- `updatedAt` (DateTimeField): Дата и время последнего обновления кластера.
9. **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): Дата и время последнего обновления объекта.
- `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): Дата и время последнего обновления объекта.
## Маршрутизатор
1. **properties-objecttypenew/** - URL для работы с типами объектов:
@@ -154,48 +162,56 @@
- `retrieve`: Получает конкретный тип объекта по его идентификатору.
- `update`: Обновляет данные о типе объекта.
- `destroy`: Удаляет тип объекта.
2. **PurposePremisesViewSet**:
- `list`: Получает список всех назначений помещений или создает новое назначение помещения.
- `create`: Создает новое назначение помещения.
- `retrieve`: Получает конкретное назначение помещения по его идентификатору.
- `update`: Обновляет данные о назначении помещения.
- `destroy`: Удаляет назначение помещения.
3. **RoomViewSet**:
- `list`: Получает список всех помещений или создает новое помещение.
- `create`: Создает новое помещение.
- `retrieve`: Получает конкретное помещение по его идентификатору.
- `update`: Обновляет данные о помещении.
- `destroy`: Удаляет помещение.
4. **FloorViewSet**:
- `list`: Получает список всех этажей или создает новый этаж.
- `create`: Создает новый этаж.
- `retrieve`: Получает конкретный этаж по его идентификатору.
- `update`: Обновляет данные об этаже.
- `destroy`: Удаляет этаж.
5. **EntranceViewSet**:
- `list`: Получает список всех подъездов или создает новый подъезд.
- `create`: Создает новый подъезд.
- `retrieve`: Получает конкретный подъезд по его идентификатору.
- `update`: Обновляет данные о подъезде.
- `destroy`: Удаляет подъезд.
6. **BuildingViewSet**:
- `list`: Получает список всех зданий или создает новое здание.
- `create`: Создает новое здание.
- `retrieve`: Получает конкретное здание по его идентификатору.
- `update`: Обновляет данные о здании.
- `destroy`: Удаляет здание.
7. **TerritoryViewSet**:
- `list`: Получает список всех территорий или создает новую территорию.
- `create`: Создает новую территорию.
- `retrieve`: Получает конкретную территорию по ее идентификатору.
- `update`: Обновляет данные о территории.
- `destroy`: Удаляет территорию.
8. **ClusterViewSet**:
- `list`: Получает список всех кластеров или создает новый кластер.
- `create`: Создает новый кластер.
- `retrieve`: Получает конкретный кластер по его идентификатору.
- `update`: Обновляет данные о кластере.
- `destroy`: Удаляет кластер.
9. **ObjectViewSet**:
- `list`: Получает список всех объектов или создает новый объект.
- `create`: Создает новый объект.
@@ -203,10 +219,12 @@
- `update`: Обновляет данные об объекте.
- `destroy`: Удаляет объект.
## Проверка введенных данных
1. **validate_year(value)**:
- Это функция-валидатор, которая принимает значение года в виде строки.
- Она проверяет, что длина значения равна 4 символам и что значение состоит только из цифр.
- Если условия не соблюдаются, функция поднимает исключение ValidationError с соответствующим сообщением об ошибке.
2. **YearField(models.CharField)**:
- Это класс, который определяет поле модели Django для хранения года.
- Он наследуется от CharField и добавляет к нему функциональность валидации года.