6.2 KiB
6.2 KiB
Модели
-
Comment:
author(ForeignKey): Связывает поле с моделью пользователя, который создал комментарий.content(TextField): Текст комментария.created(DateTimeField): Дата и время создания комментария (автоматически добавляется).updated(DateTimeField): Дата и время последнего обновления комментария (автоматически).
-
CommentArticles:
article(ForeignKey): Связь с моделью статьи (Article).
-
CommentTodos:
todo(ForeignKey): Связь с моделью задачи (Todo).
-
CommentTenant:
tenant(ForeignKey): Связь с моделью арендатора (Tenant).
-
CommentGoods:
**goods**(ForeignKey): Связь с моделью имущества (Goods).
-
CommentPropertyObject:
object(ForeignKey): Связь с моделью объекта (Object).
-
CommentMaintenanceHistories:
**maintenancehistory**(ForeignKey): Связь с моделью истории обслуживания (MaintenanceHistory).
-
CommentContract:
contract(ForeignKey): Связь с моделью контракта (Contract).
Сериализатор
-
CommentSerializer:
author(SerializerMethodField): который вызывает методget_authorдля получения сериализованных данных об авторе комментария.createdAt(DateTimeField): с форматированием даты и времени в ISO 8601.**updatedAt**(DateTimeField): с форматированием даты и времени в ISO 8601.body(CharField): который использует поле content модели Comment.- Методы:
get_author: Получает сериализованные данные об авторе комментария.create: Создает новый комментарий с указанными данными, включая автора и связанный объект (article).
-
CommentTodosSerializer:
**author**(SerializerMethodField):, который вызывает методget_authorдля получения сериализованных данных об авторе комментария.createdAt(DateTimeField): с форматированием даты и времени в ISO 8601.updatedAt(DateTimeField): с форматированием даты и времени в ISO 8601.body(CharField): который использует поле content модели CommentTodos.- Методы:
get_author: Получает сериализованные данные об авторе комментария.**create:** Создает новый комментарий для задачи с указанными данными, включая автора и связанную задачу (todo).
Маршрутизатор
-
comment-article: URL для создания и получения комментариев к статьям.
articles/<str:slug>/commentsviews.CommentView.as_view()name='comment-article'
-
comment-delete: URL для удаления комментариев к статьям по их идентификатору.
articles/<str:slug>/comments/<int:id>views.DeleteCommentView.as_view()name='comment-delete'
-
comment-todo-article: URL для создания и получения комментариев к задачам.
todos/<int:id>/commentsviews.CommentTodoView.as_view()name='comment-todo-article'
-
comment-todo-delete: URL для удаления комментариев к задачам по их идентификатору.
todos/<int:todo_id>/comments/<int:comment_id>/views.DeleteCommentTodoView.as_view()name='comment-todo-delete'
Контроллер
-
CommentView:
- Это представление позволяет создавать и получать комментарии к статьям.
generics.ListCreateAPIView: Для списка и создания комментариев.get_permissions: Проверка прав доступа.post: Создание комментария.list: Получение списка комментариев.DestroyAPIViewне используется здесь, поэтому удаление комментариев не поддерживается.
-
DeleteCommentView:
- Это представление предназначено для удаления комментариев к статьям.
generics.DestroyAPIView: Для удаления комментариев.destroy: Удаление комментария по его идентификатору и слагу статьи.
-
CommentTodoView:
- Это представление позволяет создавать и получать комментарии к задачам.
generics.ListCreateAPIView: Для списка и создания комментариев.get_permissions: Проверка прав доступа.post: Создание комментария.list: Получение списка комментариев.DestroyAPIViewне используется здесь, поэтому удаление комментариев не поддерживается.
-
DeleteCommentTodoView:
- Это представление предназначено для удаления комментариев к задачам.
generics.DestroyAPIView: Для удаления комментариев.destroy: Удаление комментария по его идентификатору и идентификатору задачи.