140501
This commit is contained in:
@@ -1,10 +1,3 @@
|
||||
## Абстрактный класс `TimeStampedModel`:
|
||||
|
||||
Этот класс добавляет автоматические поля времени создания (`created_at`), времени обновления (`updated_at`) и ссылку на автора (`author`) ко всем моделям, которые наследуют его.
|
||||
1. `created_at` (DateTimeField): Дата и время создания объекта.
|
||||
2. `updated_at` (DateTimeField): Дата и время последнего обновления объекта.
|
||||
3. `author` (ForeignKey): Ссылка на пользователя, создавшего объект.
|
||||
|
||||
## Кортеж типа организации
|
||||
INDIVIDUAL = 'individual'
|
||||
LEGAL_ENTITY = 'legal_entity'
|
||||
@@ -53,24 +46,40 @@ ORGANIZATION_SUBTYPE_CHOICES = (
|
||||
## Сериализатор
|
||||
|
||||
1. **TenantSerializer**:
|
||||
- `tenantType`: Поле, которое отображает тип арендатора.
|
||||
- `organizationType`: Поле, которое отображает тип организации (юридического лица).
|
||||
- `tradeName`: Название арендуемой организацией единицы недвижимости.
|
||||
- `tenantName`, `tenantSurname`, `tenantPatronymic`: Имя, фамилия и отчество арендатора (физического лица).
|
||||
- `tenantPassportSeries`, `tenantPassportNumber`, `tenantPassportIssuedBy`, `tenantPassportIssuedDate`: Серия и номер паспорта, кем выдан и дата выдачи (физического лица).
|
||||
- `tenantRegistration`: Прописка арендатора (физического лица) или дополнительная информация (юридического лица).
|
||||
- `tenantCompanyName`, `tenantInn`, `KPP`, `tenantOgrn`, `bankDetails`: Название организации, ИНН, КПП, ОГРН и реквизиты банка (юридического лица).
|
||||
- `additionalInfo`: Дополнительная информация о арендаторе.
|
||||
- `tenantFile`: Скан документов арендатора.
|
||||
- `author`: Информация об авторе (сериализатор `AuthorSerializer`).
|
||||
- `createdAt`, `updatedAt`: Дата создания и обновления записи.
|
||||
1. **ContactSerializer**:
|
||||
- `contactTypeTenant`: Тип контакта.
|
||||
- `attitudeContactTypeTenant`: Атрибут контакта.
|
||||
- `valueTenant`: Значение контакта.
|
||||
- `firstNameTenant`, `lastNameTenant`, `organizationTenant`, `jobTitleTenant`, `addressTenant`: Имя, фамилия, организация, должность и адрес (контактные данные арендатора).
|
||||
- `author`: Информация об авторе (сериализатор `AuthorSerializer`).
|
||||
- `createdAt`, `updatedAt`: Дата создания и обновления записи.
|
||||
- `tenantType` (CharField): Тип арендатора.
|
||||
- `organizationType` (CharField): Тип организации (юридического лица).
|
||||
- `tradeName` (CharField): Название арендуемой организацией единицы недвижимости.
|
||||
- `tenantName` (CharField): Имя арендатора (физического лица).
|
||||
- `tenantSurname` (CharField): Фамилия арендатора (физического лица).
|
||||
- `tenantPatronymic` (CharField): Отчество арендатора (физического лица).
|
||||
- `tenantPassportSeries` (CharField): Серия паспорта арендатора (физического лица).
|
||||
- `tenantPassportNumber` (CharField): Номер паспорта арендатора (физического лица).
|
||||
- `tenantPassportIssuedBy` (CharField): Кем выдан паспорт арендатора (физического лица).
|
||||
- `tenantPassportIssuedDate` (DateField): Дата выдачи паспорта арендатора (физического лица).
|
||||
- `tenantRegistration` (TextField): Прописка арендатора (физического лица) или дополнительная информация (юридического лица).
|
||||
- `tenantCompanyName` (CharField): Название организации арендатора (юридического лица).
|
||||
- `tenantInn` (CharField): ИНН организации арендатора (юридического лица).
|
||||
- `KPP` (CharField): КПП организации арендатора (юридического лица).
|
||||
- `tenantOgrn` (CharField): ОГРН организации арендатора (юридического лица).
|
||||
- `bankDetails` (CharField): Реквизиты банка организации арендатора (юридического лица).
|
||||
- `additionalInfo` (TextField): Дополнительная информация о арендаторе.
|
||||
- `tenantFile` (FileField): Скан документов арендатора.
|
||||
- `author` (AuthorSerializer): Информация об авторе.
|
||||
- `createdAt` (DateTimeField): Дата создания записи.
|
||||
- `updatedAt` (DateTimeField): Дата обновления записи.
|
||||
|
||||
2. **ContactSerializer**:
|
||||
- `contactTypeTenant` (CharField): Тип контакта арендатора.
|
||||
- `attitudeContactTypeTenant` (CharField): Атрибут контакта арендатора.
|
||||
- `valueTenant` (CharField): Значение контакта арендатора.
|
||||
- `firstNameTenant` (CharField): Имя арендатора (физического лица).
|
||||
- `lastNameTenant` (CharField): Фамилия арендатора (физического лица).
|
||||
- `organizationTenant` (CharField): Название организации арендатора (юридического лица).
|
||||
- `jobTitleTenant` (CharField): Должность арендатора (юридического лица).
|
||||
- `addressTenant` (CharField): Адрес арендатора.
|
||||
- `author` (AuthorSerializer): Информация об авторе.
|
||||
- `createdAt` (DateTimeField): Дата создания записи.
|
||||
- `updatedAt` (DateTimeField): Дата обновления записи.
|
||||
|
||||
## Маршрутизатор
|
||||
|
||||
@@ -91,20 +100,24 @@ ORGANIZATION_SUBTYPE_CHOICES = (
|
||||
- `lookup_field`: Поле, используемое для поиска объектов `Tenant`.
|
||||
- `filterset_class`: Фильтры для списка арендаторов.
|
||||
- `http_method_names`: Определяет доступные методы HTTP (GET, POST, PUT, DELETE).
|
||||
|
||||
2. **Методы TenantView:**
|
||||
- `list`: Получает список арендаторов.
|
||||
- `create`: Создает нового арендатора.
|
||||
- `retrieve`: Получает детали конкретного арендатора.
|
||||
- `update`: Обновляет данные арендатора.
|
||||
- `destroy`: Удаляет арендатора.
|
||||
|
||||
3. **ContactTenantViewSet:**
|
||||
- Представление для работы с контактами арендаторов.
|
||||
- `queryset`: Устанавливает все объекты `Contact` в качестве запроса по умолчанию.
|
||||
- `serializer_class`: Использует `ContactSerializer` для сериализации и десериализации данных.
|
||||
- `permission_classes`: Устанавливает разрешения для доступа к представлениям (в данном случае, только аутентифицированные пользователи).
|
||||
|
||||
4. **Методы ContactTenantViewSet:**
|
||||
- `list`: Получает список контактов для конкретного арендатора.
|
||||
- `post`: Создает новый контакт для арендатора.
|
||||
|
||||
5. **DeleteContactTenantView:**
|
||||
- Представление для удаления контакта арендатора.
|
||||
- `destroy`: Удаляет контакт.
|
||||
@@ -115,6 +128,7 @@ ORGANIZATION_SUBTYPE_CHOICES = (
|
||||
- Разрешение для проверки доступа к объектам на основе их владельца или участника.
|
||||
- `has_object_permission`: Метод, который проверяет разрешение на доступ к конкретному объекту.
|
||||
- Разрешает доступ только для безопасных методов (GET, HEAD, OPTIONS) или если пользователь является владельцем объекта.
|
||||
|
||||
2. **IsOwnerAndAdmin:**
|
||||
- Разрешение, позволяющее только авторам объектов Tenant и пользователям с группой 'admin' доступ к операциям CRUD.
|
||||
- `has_permission`: Метод, который проверяет разрешение на доступ к представлению (view), основанное на группе пользователя.
|
||||
|
||||
Reference in New Issue
Block a user