140500
This commit is contained in:
95
BACKEND/COMMENTS.md
Normal file
95
BACKEND/COMMENTS.md
Normal file
@@ -0,0 +1,95 @@
|
||||
## Модели
|
||||
|
||||
1. **Comment**:
|
||||
- **`author`** (ForeignKey): Связывает поле с моделью пользователя, который создал комментарий.
|
||||
- **`content`** (TextField): Текст комментария.
|
||||
- **`created`** (DateTimeField): Дата и время создания комментария (автоматически добавляется).
|
||||
- **`updated`** (DateTimeField): Дата и время последнего обновления комментария (автоматически).
|
||||
|
||||
2. **CommentArticles**:
|
||||
- **`article`** (ForeignKey): Связь с моделью статьи (Article).
|
||||
|
||||
1. **CommentTodos**:
|
||||
- **`todo`** (ForeignKey): Связь с моделью задачи (Todo).
|
||||
|
||||
1. **CommentTenant**:
|
||||
- **`tenant`** (ForeignKey): Связь с моделью арендатора (Tenant).
|
||||
|
||||
1. **CommentGoods**:
|
||||
- `**goods**` (ForeignKey): Связь с моделью имущества (Goods).
|
||||
|
||||
1. **CommentPropertyObject**:
|
||||
- **`object`** (ForeignKey): Связь с моделью объекта (Object).
|
||||
|
||||
1. **CommentMaintenanceHistories**:
|
||||
- `**maintenancehistory**` (ForeignKey): Связь с моделью истории обслуживания (MaintenanceHistory).
|
||||
|
||||
1. **CommentContract**:
|
||||
- **`contract`** (ForeignKey): Связь с моделью контракта (Contract).
|
||||
## Сериализатор
|
||||
|
||||
1. **CommentSerializer:**
|
||||
- **`author`:** SerializerMethodField, который вызывает метод `get_author` для получения сериализованных данных об авторе комментария.
|
||||
- **`createdAt`:** DateTimeField с форматированием даты и времени в ISO 8601.
|
||||
- `**updatedAt`:** DateTimeField с форматированием даты и времени в ISO 8601.
|
||||
- **`body`:** CharField, который использует поле content модели Comment.
|
||||
- **Методы:**
|
||||
- **`get_author`:** Получает сериализованные данные об авторе комментария.
|
||||
- **`create`:** Создает новый комментарий с указанными данными, включая автора и связанный объект (article).
|
||||
|
||||
2. **CommentTodosSerializer:**
|
||||
- `**author`:** SerializerMethodField, который вызывает метод `get_author` для получения сериализованных данных об авторе комментария.
|
||||
- **`createdAt`:** DateTimeField с форматированием даты и времени в ISO 8601.
|
||||
- **`updatedAt`:** DateTimeField с форматированием даты и времени в ISO 8601.
|
||||
- **`body`:** CharField, который использует поле content модели CommentTodos.
|
||||
- **Методы:**
|
||||
- **`get_author`:** Получает сериализованные данные об авторе комментария.
|
||||
- `**create`:** Создает новый комментарий для задачи с указанными данными, включая автора и связанную задачу (todo).
|
||||
## Маршрутизатор
|
||||
|
||||
1. **comment-article:** URL для создания и получения комментариев к статьям.
|
||||
- `articles/<str:slug>/comments`
|
||||
- `views.CommentView.as_view()`
|
||||
- `name='comment-article'`
|
||||
|
||||
1. **comment-delete:** URL для удаления комментариев к статьям по их идентификатору.
|
||||
- `articles/<str:slug>/comments/<int:id>`
|
||||
- `views.DeleteCommentView.as_view()`
|
||||
- `name='comment-delete'`
|
||||
|
||||
1. **comment-todo-article:** URL для создания и получения комментариев к задачам.
|
||||
- `todos/<int:id>/comments`
|
||||
- `views.CommentTodoView.as_view()`
|
||||
- `name='comment-todo-article'`
|
||||
|
||||
1. **comment-todo-delete:** URL для удаления комментариев к задачам по их идентификатору.
|
||||
- `todos/<int:todo_id>/comments/<int:comment_id>/`
|
||||
- `views.DeleteCommentTodoView.as_view()`
|
||||
- `name='comment-todo-delete'`
|
||||
## Контроллер
|
||||
|
||||
1. **CommentView:**
|
||||
- Это представление позволяет создавать и получать комментарии к статьям.
|
||||
- `generics.ListCreateAPIView`: Для списка и создания комментариев.
|
||||
- `get_permissions`: Проверка прав доступа.
|
||||
- `post`: Создание комментария.
|
||||
- `list`: Получение списка комментариев.
|
||||
- `DestroyAPIView` не используется здесь, поэтому удаление комментариев не поддерживается.
|
||||
|
||||
2. **DeleteCommentView:**
|
||||
- Это представление предназначено для удаления комментариев к статьям.
|
||||
- `generics.DestroyAPIView`: Для удаления комментариев.
|
||||
- `destroy`: Удаление комментария по его идентификатору и слагу статьи.
|
||||
|
||||
3. **CommentTodoView:**
|
||||
- Это представление позволяет создавать и получать комментарии к задачам.
|
||||
- `generics.ListCreateAPIView`: Для списка и создания комментариев.
|
||||
- `get_permissions`: Проверка прав доступа.
|
||||
- `post`: Создание комментария.
|
||||
- `list`: Получение списка комментариев.
|
||||
- `DestroyAPIView` не используется здесь, поэтому удаление комментариев не поддерживается.
|
||||
|
||||
4. **DeleteCommentTodoView:**
|
||||
- Это представление предназначено для удаления комментариев к задачам.
|
||||
- `generics.DestroyAPIView`: Для удаления комментариев.
|
||||
- `destroy`: Удаление комментария по его идентификатору и идентификатору задачи.
|
||||
Reference in New Issue
Block a user