No
settings.py
no código original que você vinculado
para, parece que você tem duas declarações contraditórias para seus DATABASES
contexto:1) linha 3:
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
2) linha 16:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'traineeworld', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
3) Além disso, o código adicional de sua última edição se parece com outro método para especificar os argumentos de conexão, que provavelmente nega novamente os efeitos das declarações anteriores.
Esses métodos não devem ser empilhados uns sobre os outros. Você quer escolher apenas um.
Além disso, tecnicamente, como o iniciador de uma conexão do lado do cliente com um servidor db, você deve saber se o servidor deve ser alcançado através de TCP (e neste caso seu nome de host ou endereço IP mais porta), ou através de um arquivo de soquete de domínio Unix e, nesse caso, seu caminho de diretório completo (começando com uma barra). Em ambos os casos, isso vai para o
HOST
parte dos parâmetros de conexão. O Postgres fornece valores padrão para todos eles, mas assim que você mistura e combina diferentes partes de software de diferentes fontes, esses padrões não ajudam mais e fornecer valores explícitos se torna um requisito.
Na dúvida sobre o caminho do socket, dentro do
psql
quando conectado como usuário postgres, este caminho pode ser obtido pelo comando SQL:SHOW unix_socket_directory;
Esta configuração também está presente no
postgresql.conf
do lado do servidor arquivo de configuração.