Files
we_pro_dock/BACKEND/ARTICLES.md
2024-05-14 11:39:33 +03:00

36 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Модель статьи
1.1. **`author`** (ForeignKey): Связывает поле с моделью пользователя, который создал статью.
2. **`title`** (CharField): Название статьи.
3. **`summary`** (TextField): Краткое описание статьи.
4. **`content`** (TextField): Полное содержание статьи.
5. **`created`** (DateTimeField): Дата и время создания статьи.
6. **`updated`** (DateTimeField): Дата и время последнего обновления статьи.
7. **`tags`** (TaggableManager): Поле для управления тегами, используется для категоризации статей.
8. **`favorites`** (ManyToManyField): Связь многие ко многим с моделью пользователя, используется для отслеживания избранных статей пользователей.
9. `**slug**` (SlugField): Уникальный идентификатор для URL статьи, генерируется автоматически на основе названия статьи.
## Сериализатор
1. **ArticleSerializer**:
- Сериализатор для модели статей (Article).
- Поля: `slug`, `title`, `description`, `body`, `tagList`, `createdAt`, `updatedAt`, `favorited`, `favoritesCount`, `author`.
- `TaggitSerializer`: Используется для сериализации тегов статьи.
- Методы: `get_author`, `get_favorited`, `get_favoritesCount`, `create`, `update`.
## Маршрутизатор
- **`article_router.register('articles', views.ArticleView, basename='articles')`**: Регистрация маршрута для представления `ArticleView` из `views.py` под именем 'articles'. `basename='articles'` указывает базовое имя для ссылок.
## Контроллер
1. ArticleView:
- Представление для работы с моделью статей.
- Использует `ModelViewSet`, который предоставляет CRUD-функциональность и многое другое.
- Включает методы `list`, `create`, `retrieve`, `update`, `destroy` для обработки соответствующих HTTP-запросов.
- Содержит дополнительные действия (`favorite`, `feed`) с использованием декоратора `@action`.
- `get_permissions`: Определяет разрешения для доступа к методам на основе типа действия.
- `list`: Получает список всех статей.
- `create`: Создает новую статью.
- `favorite`: Добавляет или удаляет статью из избранного.
- `feed`: Возвращает ленту статей для текущего пользователя.
- `retrieve`: Получает информацию о конкретной статье.
- `update`: Обновляет информацию о конкретной статье.
- `destroy`: Удаляет конкретную статью.