Niedawno zaktualizowałem Django z wersji 1.3.1 do wersji 1.4.
W moim starym settings.pymam
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.pyplik jest teraz /Users/hobbes3/Sites/mysite/mysite/zamiast /Users/hobbes3/Sites/mysite/.
Tak więc moje pytanie jest teraz dwojakie:
- Jak użyć,
os.pathaby spojrzeć na katalog o jeden poziom wyżej od__file__. Innymi słowy, chcę/Users/hobbes3/Sites/mysite/mysite/settings.pyznaleźć/Users/hobbes3/Sites/mysite/templatesprzy użyciu ścieżek względnych. - Powinienem być utrzymanie
templatefolder (który ma przekrój szablony aplikacji, jakadmin,registrationetc.), w projekcie/User/hobbes3/Sites/mysitepoziomu lub co/User/hobbes3/Sites/mysite/mysite?
settings.pyna wielu serwerach. Jedyną różnicą mogą być poświadczenia bazy danych. Czytałem os.pathdokumentację, 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)
osdocdcelu../mysite? Lub cokolwiek chcesz