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

@@ -11,10 +11,14 @@
## Сериализатор
1. **ArticleSerializer**:
- Сериализатор для модели статей (Article).
- Поля: `slug`, `title`, `description`, `body`, `tagList`, `createdAt`, `updatedAt`, `favorited`, `favoritesCount`, `author`.
- `TaggitSerializer`: Используется для сериализации тегов статьи.
- Методы: `get_author`, `get_favorited`, `get_favoritesCount`, `create`, `update`.
- **`slug`:** (SlugField), уникальный идентификатор для URL статьи. Здесь он настроен как только для чтения (read-only).
- **`description`:** (CharField), отображает описание статьи и использует поле summary модели.
- **`body`:** (CharField), содержит полное содержание статьи и использует поле content модели.
- **`tagList`:** (TagListSerializerField), отображает теги статьи и использует поле tags модели. Он также настроен как только для чтения.
- **`createdAt`**(DateTimeField): с форматированием даты и времени в ISO 8601.
- `**updatedAt`**(DateTimeField): с форматированием даты и времени в ISO 8601.
- **`favorited` и `favoritesCount`** (SerializerMethodField): используются для получения информации о том, добавлена ли статья в избранное пользователем и сколько пользователей добавили эту статью в избранное соответственно.
- **`author`** (SerializerMethodField): с атрибутом read_only=True, который вызывает метод `get_author` для получения сериализованных данных об авторе статьи.
## Маршрутизатор
- **`article_router.register('articles', views.ArticleView, basename='articles')`**: Регистрация маршрута для представления `ArticleView` из `views.py` под именем 'articles'. `basename='articles'` указывает базовое имя для ссылок.