Python 通往django项目总监的路径

Python 通往django项目总监的路径,python,django,Python,Django,这是我的项目树: projectname projectname init.py settings.py urls.py wsgi.py appname init.py admin.py models.py test.py views.py urls.py templates base.html

这是我的项目树:

projectname
    projectname
        init.py
        settings.py
        urls.py
        wsgi.py
    appname
        init.py
        admin.py
        models.py
        test.py
        views.py
        urls.py
    templates
        base.html
        login.html
现在在settings.py中,我使用以下代码:

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(BASE_DIR), "projectname", "templates"),
    )

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "projectname", "static", "static-only")
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "projectname", "static", "media")
如何获取项目目录的路径,以便我不需要在代码中键入项目名称
projectname
,并在任何其他django项目中使用该代码

更新

或者我可以用这个吗

BASE_DIR+'/templates'
BASE_DIR+'/static/media'

还是一个坏主意?

我建议您使用:

基本目录已包含“项目名称”。当您执行
os.path.dirname(BASE\u DIR)
时,您将从projectname提升一个级别;只是把它加回去。不要那样做

相反,只需直接使用BASE_DIR:

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, "templates"),
)

您可以将这些行放在directories.py文件中,并将该逻辑导入settings.py,然后您可以重用settings.py并为不同的django项目更改directories.py。是的,我想我可以?但这是更多的工作D或者,我可以将其用作路径
BASE\u DIR+'/templates'
TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, "templates"),
)