Recientemente actualicé Django de v1.3.1 a v1.4.Usando os.path de Python, ¿cómo puedo subir un directorio?
En mi viejo settings.py
que tienen
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__), 'templates').replace('\\', '/'),
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
Esto apuntará a /Users/hobbes3/Sites/mysite/templates
, pero because Django v1.4 moved the project folder to the same level as the app folders, mi archivo está ahora en settings.py
/Users/hobbes3/Sites/mysite/mysite/
en lugar de /Users/hobbes3/Sites/mysite/
.
Así que en realidad mi pregunta ahora es doble:
- ¿Cómo se utiliza
os.path
mirar un directorio de un nivel por encima de__file__
. En otras palabras, quiero/Users/hobbes3/Sites/mysite/mysite/settings.py
para encontrar/Users/hobbes3/Sites/mysite/templates
usando rutas relativas. - ¿Debo ser de mantenimiento de la carpeta
template
(que tiene plantillas cruzada de aplicaciones, comoadmin
,registration
, etc.) a nivel de proyecto o al/User/hobbes3/Sites/mysite
/User/hobbes3/Sites/mysite/mysite
?
¿No puedes usar 'os' en' cd' en '../ mysite'? O cualquiera que sea el comando que desee – prelic
@prelic Hmm? No entiendo. Estoy tratando de evitar la codificación de la ruta, porque utilizo el mismo 'settings.py' en varios servidores. La única diferencia podría ser las credenciales de la base de datos. Estaba leyendo la documentación ['os.path'] (http://docs.python.org/library/os.path.html) pero no pude encontrar un comando que te permita subir un directorio. Me gusta 'cd ..'. – hobbes3
@ hobbes3 Puede simplemente 'os.path.join (os.path.dirname (__file__), '..')' '..' significa _el directorio de arriba_ en todo el sistema de archivos, no solo cuando se pasa a' cd'. –