Проект YaMDb собирает отзывы пользователей на произведения. Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку. Произведения делятся на категории, такие как «Книги», «Фильмы», «Музыка». Список категорий может быть расширен. Произведению может быть присвоен жанр из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Добавлять произведения, категории и жанры может только администратор.
- Аноним — может просматривать описания произведений, читать отзывы и комментарии.
- Аутентифицированный пользователь (user) — может читать всё, как и Аноним, может публиковать отзывы и ставить оценки произведениям (фильмам/книгам/песенкам), может комментировать отзывы; может редактировать и удалять свои отзывы и комментарии, редактировать свои оценки произведений. Эта роль присваивается по умолчанию каждому новому пользователю.
- Модератор (moderator) — те же права, что и у Аутентифицированного пользователя, плюс право удалять и редактировать любые отзывы и комментарии.
- Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
- Суперюзер Django должен всегда обладать правами администратора, пользователя с правами admin. Даже если изменить пользовательскую роль суперюзера — это не лишит его прав администратора. Суперюзер — всегда администратор, но администратор — не обязательно суперюзер.
- Python 3.7
- Django 3.2
- Djangorestframework 3.12.4
-
Клонировать репозиторий и перейти в него в командной строке:
git clone <ссылка с git-hub>
-
Шаблон наполнения .env (не включен в текущий репозиторий), расположить по пути infra/.env
DB_ENGINE=django.db.backends.postgresql DB_NAME= # имя базы данных POSTGRES_USER= # логин для подключения к базе данных POSTGRES_PASSWORD= # пароль для подключения к БД (установите свой) DB_HOST=database DB_PORT= # порт для подключения к БД SECRET_KEY= # секретный ключ Django
-
Находясь в папке infra/ поднять контейнеры
docker-compose up -d --build
-
Выполнить миграции:
docker-compose exec web python manage.py migrate
-
Создать суперпользователя:
docker-compose exec web python manage.py createsuperuser
-
Собрать статику:
docker-compose exec web python manage.py collectstatic --no-input
-
Наполнить базу заранее заготовленными файлами:
docker-compose exec web python manage.py importcsv
Документация для API после установки доступна по адресу
/redoc/
Студенты курса "Python-разработчик" от Яндекс-Практикума:
модели, view и эндпойнты для:
произведений,
категорий,
жанров;
импорт данных из csv файлов
docker
система регистрации и аутентификации,
права доступа,
работа с токеном,
система подтверждения через e-mail
модели, view и эндпойнты для:
отзывов,
комментариев,
рейтинга произведений