Di recente ho aggiornato Django dalla v1.3.1 alla v1.4.
Nel mio vecchio l' settings.pyho fatto
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.
)
Questo indicherà /Users/hobbes3/Sites/mysite/templates, ma poiché Django v1.4 ha spostato la cartella del progetto allo stesso livello delle cartelle dell'app , il mio settings.pyfile è ora al /Users/hobbes3/Sites/mysite/mysite/posto di /Users/hobbes3/Sites/mysite/.
Quindi in realtà la mia domanda ora è duplice:
- Come posso usare
os.pathper guardare una directory sopra un livello__file__. In altre parole, voglio/Users/hobbes3/Sites/mysite/mysite/settings.pytrovare/Users/hobbes3/Sites/mysite/templatesusando percorsi relativi. - Dovrei essere mantenendo la
templatecartella (che dispone di modelli cross-app, comeadmin,registratione così via) al progetto di/User/hobbes3/Sites/mysitepiano o/User/hobbes3/Sites/mysite/mysite?
settings.pyin più server. L'unica differenza potrebbe essere le credenziali del database. Stavo leggendo la os.pathdocumentazione ma non sono riuscito a trovare un comando che ti permetta di salire di una directory. Come cd ...
os.path.join( os.path.dirname( __file__ ), '..' ) ..indicare la directory sopra in tutto il filesystem, non solo quando passerai a cd.
os.path.join( os.path.dirname ( __file__), os.path.pardir)
osacdfarlo../mysite? O qualunque comando tu voglia