Um erro de tempo limite de conexão sugere que o servidor de banco de dados não está acessível com suas configurações na rede de forma que não retorne um erro imediato. A melhor abordagem, na minha experiência, é solucionar os dois lados da conexão separadamente. Isso significa testar primeiro o lado do servidor da conexão a partir da linha de comando do psql e, em seguida, testar o lado do django assim que isso for resolvido.
Suponho que aqui você possa instalar o psql.on no servidor.
Verificações imediatas:
- Você pode pingar o servidor a partir do servidor? Caso contrário, comece por aí na solução de problemas da rede. (Vejo que isso é localhost, mas ainda tento - leva muito pouco tempo e pelo menos verifica as suposições).
- Você pode se conectar ao servidor via psql usando a mesma porta, endereço IP, etc? Se não corrigir os erros que você obtém ao tentar isso, tente corrigi-los primeiro. É provável que os mesmos problemas ocorram aqui também. Talvez seja necessário verificar o firewall e a configuração do postgresql se isso expirar.
- Uma vez que eles estão funcionando, então comece a tentar a partir do django novamente. Então você sabe que é específico do Django/Python e não do lado do servidor.