Estoy utilizando el módulo os para tener rutas de acceso relativas en mi proyecto Django settings.py
. La variable SITE_ROOT se establece en el directorio de trabajo actual del archivo settings.py
y luego se utiliza para hacer referencia a todos los directorios static/media
que también se encuentran en ese mismo directorio.os.getcwd() vs os.path.abspath (os.path.dirname (__ file__))
Aquí está mi problema:
print os.getcwd()
print os.path.abspath(os.path.dirname(__file__))
En settings.py, las declaraciones anteriores tienen ambas salidas idénticas. pero mi plantilla sólo se cargará si uso SITE_ROOT = os.path.abspath(os.path.dirname(__file__))
Django busca las plantillas aquí:
TEMPLATE_DIRS = (
os.path.join(SITE_ROOT, 'templates'),
)
SITE_ROOT ajustado a os.getcwd()
parece que Django busque la carpeta de plantillas en el directorio anterior del archivo settings.py
No puedo usar os.getcwd()
y mi sitio funciona bien, pero tengo curiosidad por saber qué puede estar pasando aquí :)
¿Alguien sabe?
El directorio de trabajo actual y '__file__' no están relacionados. El primero puede cambiar, dependiendo de dónde ejecutas el programa y si usas 'os.chdir' dentro, el otro depende solo de dónde se coloca el módulo en el sistema de archivos. –