我正在设置Django 1.10的设置文件,根据两个Scoops设置的Django 1.8首选设置文件。
我的base.py设置文件是:
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_DIR返回以下路径:
/Devs/projects/captain_log/src/cap_log
我的文件树:
|--Virtual Env Folder
|--src(django project)/
|--cap_log(django config)/
|--init.py
|--urls.py
|--wsgi.py
|--settings/
|-- init.py
|-- base.py (all settings located here)
|-- development.py
|-- production.py
|-- etc.
我假设BASE_DIR应该返回:
/Devs/projects/captain_log/src/
我问,因为我的STATIC_DIRS也在返回:
/Devs/projects/captain_log/src/cap_log/static
而不是:
/Devs/projects/captain_log/src/static
有人可以建议解决方案或纠正我正在做的事情。 它还影响模板路径,收集静态,媒体路径等。
答案 0 :(得分:6)
再试一次dirname
电话
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
第一个dirname为您提供设置,第二个dirname为您提供config文件夹,第三个将您放入父目录
__file__ # is the current file location
os.path.abspath(__file__) # locates you on the file structure
os.path.dirname(os.path.abspath(__file__)) # gives you the directory of the file at the supplied filepath
默认假设您使用的是settings.py
文件而不是目录,因此您是原始配置中的一个目录