J'ai récemment mis à niveau Django de la v1.3.1 vers la v1.4.
Dans mon ancien settings.py
j'ai
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.
)
Cela indiquera /Users/hobbes3/Sites/mysite/templates
, mais parce que Django v1.4 a déplacé le dossier du projet au même niveau que les dossiers d'application , mon settings.py
fichier est maintenant à la /Users/hobbes3/Sites/mysite/mysite/
place de /Users/hobbes3/Sites/mysite/
.
Donc en fait ma question est maintenant double:
- Comment puis-je utiliser
os.path
pour regarder un répertoire un niveau au-dessus de__file__
. En d'autres termes, je veux/Users/hobbes3/Sites/mysite/mysite/settings.py
trouver en/Users/hobbes3/Sites/mysite/templates
utilisant des chemins relatifs. - Dois - je garderai le
template
dossier (qui a des modèles cross-app, commeadmin
,registration
, etc.) au projet/User/hobbes3/Sites/mysite
niveau ou à/User/hobbes3/Sites/mysite/mysite
?
settings.py
sur plusieurs serveurs. La seule différence pourrait être les informations d'identification de la base de données. Je lisais la os.path
documentation mais je n'ai pas trouvé de commande qui vous permette de remonter dans un répertoire. Comme cd ..
.
os.path.join( os.path.dirname( __file__ ), '..' )
..
signifie le répertoire ci - dessus à travers le système de fichiers, pas seulement lorsqu'il est passé à cd
.
os.path.join( os.path.dirname ( __file__), os.path.pardir)
os
pourcd
de../mysite
? Ou quelle que soit la commande que vous voulez