Адаптированная к проекту модель пользователя взята из статьи Customizing Django Authentication using AbstractBaseUser.
Для загрузки изображений закодированных в формате base64 использована библиотека drf-extra-fields.
Для Тэгов использована библиотека django-colorfield позволяющая в интерфейсе админ панели выбирать цвет тэга при помощи color-picker'a.
Для регистрации и аутентификации использована библиотека djoser.
- Клонировать репозиторий, перейти в директорию infra и запустить контейнеры:
> git clone https://github.com/kurtKostein/foodgram-project-react.git
- В директории backend создать файл .env и наполнить его содержимым по анологии с файлом .env.example.
> cd infra
> docker-compose up
- Далее, провести миграции, создать суперпользователя, собрать статику:
> docker-compose exec <<название контейнера>> python manage.py migrate --noinput
> docker-compose exec <<название контейнера>> python manage.py createsuperuser
> docker-compose exec <<название контейнера>> python manage.py collectstatic --no-input
- Загрузить данные из директории data:
> cat <<fixture_name.json>> | sudo docker exec -i <<container_name_or_id>> python manage.py loaddata --format=json -
Для локальной работы над проектом, в файле docker-compose.override.yml переопределены некоторые директивы, например применена сборка контейнера вместо его загрузки с DockerHub, используется local_nginx.conf вместо nginx.conf, а так же иное расположение .env файла.
Однако как выяснилось впоследствии docker-compose не всегда переопределяет параметр, иногда он его добавляет к существующему, такое вот "изящное" решение вместо логичного extends которого выпилили из 3ей версии.