J'ai récemment mis à niveau Django de la v1.3.1 vers la v1.4.
Dans mon ancien settings.pyj'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.pyfichier 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.pathpour regarder un répertoire un niveau au-dessus de__file__. En d'autres termes, je veux/Users/hobbes3/Sites/mysite/mysite/settings.pytrouver en/Users/hobbes3/Sites/mysite/templatesutilisant des chemins relatifs. - Dois - je garderai le
templatedossier (qui a des modèles cross-app, commeadmin,registration, etc.) au projet/User/hobbes3/Sites/mysiteniveau ou à/User/hobbes3/Sites/mysite/mysite?
settings.pysur plusieurs serveurs. La seule différence pourrait être les informations d'identification de la base de données. Je lisais la os.pathdocumentation 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)
ospourcdde../mysite? Ou quelle que soit la commande que vous voulez