Niedawno zaktualizowałem Django z wersji 1.3.1 do wersji 1.4.
W moim starym settings.py
mam
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.
)
To wskaże /Users/hobbes3/Sites/mysite/templates
, ale ponieważ Django v1.4 przeniósł folder projektu na ten sam poziom, co foldery aplikacji , mój settings.py
plik jest teraz /Users/hobbes3/Sites/mysite/mysite/
zamiast /Users/hobbes3/Sites/mysite/
.
Tak więc moje pytanie jest teraz dwojakie:
- Jak użyć,
os.path
aby spojrzeć na katalog o jeden poziom wyżej od__file__
. Innymi słowy, chcę/Users/hobbes3/Sites/mysite/mysite/settings.py
znaleźć/Users/hobbes3/Sites/mysite/templates
przy użyciu ścieżek względnych. - Powinienem być utrzymanie
template
folder (który ma przekrój szablony aplikacji, jakadmin
,registration
etc.), w projekcie/User/hobbes3/Sites/mysite
poziomu lub co/User/hobbes3/Sites/mysite/mysite
?
settings.py
na wielu serwerach. Jedyną różnicą mogą być poświadczenia bazy danych. Czytałem os.path
dokumentację, ale nie mogłem znaleźć polecenia, które pozwoli ci przejść do jednego katalogu. Jak cd ..
.
os.path.join( os.path.dirname( __file__ ), '..' )
..
oznaczać powyższy katalog w całym systemie plików, nie tylko po przekazaniu do cd
.
os.path.join( os.path.dirname ( __file__), os.path.pardir)
os
docd
celu../mysite
? Lub cokolwiek chcesz