It's a bad idea to hard code paths in your application. One should always use relative urls so that your code can work seamlessly across different machines. The best way to set this up is to define a variable like this
import os BASE_DIR = os.path.dirname(os.path.dirname(__file__))
Then use this
BASE_DIR variable to define all your other settings.
TEMPLATE_PATH = os.path.join(BASE_DIR, "templates") STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ]
And so on. This ensures that you can port your code across different machines without any worries.
os.path is a bit verbose. For instance if your settings module is
project.settings.dev, you will have to write:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
An alternative is to use the
unipath module (which you can install with
pip install unipath).
from unipath import Path BASE_DIR = Path(__file__).ancestor(2) # or ancestor(3) if using a submodule TEMPLATE_PATH = BASE_DIR.child('templates') STATICFILES_DIRS = [ BASE_DIR.child('static'), ]