30π
import os.path
#Get the absolute path of the settings.py file's directory
PWD = os.path.dirname(os.path.realpath(__file__ ))
TEMPLATE_DIRS = (
# 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.
#Add Templates to the absolute directory
os.path.join(PWD, "Templates")
)
Thatβs how I do relative imports. Note that is usually wise to have a separate localsettings.py file, or something similar.
3π
settings.py
is just another Python module. Import and use the various functions in os.path
to build your paths.
- Celery βbeat on Heroku vs Worker and Clock processes
- Django bootstrap alerts not working as expected
- Django development server showing Error 61 Connection Refused with Redis
- Django & TastyPie: request.POST is empty
3π
Do this:
import os
ROOT_PATH = os.path.dirname(__file__)
.
.
.
TEMPLATE_DIRS = (
os.path.join(ROOT_PATH, 'templates'),
)
This will set the paths according to the directory of settings.py file
- Is it possible to disable django related_name for a specific field?
- Django and virtualenv β Adding to git repo
- How do you install mysql-connector-python (development version) through pip?
1π
The alternative to using relative path from the settings.py file, is for each developer to have their own settings.py.
# settings.py
TEMPLATE_DIRS = (
'c:\django\templates\',
)
# dev-x-settings.py
import settings
TEMPLATE_DIRS = (
'd:\dev\django\project\templates\'
)
The dev-x-settings.py imports all the settings from the base file, and changes the bits and pieces they need to. Also very handy for maintaining a local sqlite database and the like.
We usually set out our settings as:
/settings/
__init__.py
production.py
staging.py
test.py
dev-x.py
dev-y.py
Then all you need to worry about is running the server and passing it the correct settings.py file.
1π
Besides using os.path
you could add
try:
import * from settings_local
except:
pass
at the end of you settings.py
. Every developer can then create his own settings_local.py
file which is not checked in into the VCS!
- How to implement a paginator that doesn't call count(*)
- How to automatically get user's timezone from client in Django?
- Emptying the database through Django's `manage.py`
- Django template tag: How to send next_page in {url auth_logout}?
- Django templates β can I set a variable to be used in a parent template?