YaMDb позволяет пользователям оставлять отзывы к различного рода произведениям: музыке, фильмам, книгам.
Однако сами произведения в YaMDb отсутствуют.
- Клонируйте репозиторий.
- Установите и активируйте виртуальное окружение:
python -m venv venv
source venv/Scripts/activate
- Установить зависимости из файла requirements.txt
python -m pip install --upgrade pip
pip install -r requirements.txt
- Выполнить миграции:
python manage.py migrate
Запускаем проект:
python manage.py runserver
- Аноним — может просматривать описания произведений, читать отзывы и комментарии.
- Аутентифицированный пользователь (user) — может, как и Аноним, читать всё, дополнительно он может публиковать отзывы и ставить оценку произведениям (фильмам/книгам/песенкам), может комментировать чужие отзывы; может редактировать и удалять свои отзывы и комментарии. Эта роль присваивается по умолчанию каждому новому пользователю.
- Модератор (moderator) — те же права, что и у Аутентифицированного пользователя плюс право удалять любые отзывы и комментарии.
- Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
- Суперюзер Django — обладает правами администратора (admin)
Поля email и username должны быть уникальными.
Регистрация нового пользователя:
POST /api/v1/auth/signup/
{
"email": "string",
"username": "string"
}
Получение JWT-токена:
POST /api/v1/auth/token/
{
"username": "string",
"confirmation_code": "string"
}
Добавление категории:
Права доступа: Администратор.
POST /api/v1/categories/
{
"name": "string",
"slug": "string"
}
Удаление категории:
Права доступа: Администратор.
DELETE /api/v1/categories/{slug}/
Добавление жанра:
Права доступа: Администратор.
POST /api/v1/genres/
{
"name": "string",
"slug": "string"
}
Удаление жанра:
Права доступа: Администратор.
DELETE /api/v1/genres/{slug}/
Добавление пользователя:
Права доступа: Администратор
Поля email и username должны быть уникальными.
POST /api/v1/users/ - Добавление пользователя
{
"username": "string",
"email": "[email protected]",
"first_name": "string",
"last_name": "string",
"bio": "string",
"role": "user"
}
Получение пользователя по username:
Права доступа: Администратор
GET /api/v1/users/{username}/ - Получение пользователя по username
Остальные примеры запросов и подробная документация доступна по эндпоинту /redoc/
Авторы проекта: