Każdy kontener w dockerze domyślnie otrzymuje własną nazwę hosta i adres IP. Gdy funkcja compose rozkręca kontenery za Ciebie, domyślnie umieszcza również wszystkie kontenery w sieci, aby umożliwić wykrywanie w oparciu o DNS.
Oznacza to, że twoja baza danych jest nieosiągalna na hoście lokalnym, ale możesz się do niej dostać pod nazwą usługi „db”. Zmień ten wiersz w ustawieniach.py:
'HOST': 'localhost',
do:
'HOST': 'db',