这个问题或多或少地得到了这里的回答,但对我来说没有用,而且据我所知,更多的人也有同样的问题。
在我的settings.py中,我有以下几行:
#TEMPLATE_DIRS = [os.path.join(BASE_DIR,'..', 'templates'),]
TEMPLATE_DIRS = ("/root/GODJANGO/thedjango/django_project",)缩小的线路不起作用。如果我编写完整的路径,它就能工作,但它并不专业,当我三个月后迁移我的服务器时,我不想遇到问题,因为我不会记得这件事。
发布于 2014-02-06 12:06:07
如果您有以下项目布局:
manage.py
myproject/
settings.py
urls.py
wsgi.py
templates/
admin/
app1/
app2/然后,通过在settings.py中放置以下内容,可以动态地设置模板目录
...
SETTINGS_PATH = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIRS = (
os.path.join(SETTINGS_PATH, "templates")
)
...如果模板文件夹位于settings.py的父文件夹中,则需要如下所示:
...
SETTINGS_PATH = os.path.abspath(os.path.dirname(__file__))
PROJECT_FOLDER = (os.path.split(SETTINGS_PATH))[0] # get the parent directory
TEMPLATE_DIRS = (
os.path.join(PROJECT_FOLDER, "templates")
)
...如您所见,我们正在手动遍历文件树,以查找模板文件夹所在的位置并动态分配它。
模板文件夹的最佳位置取决于您的项目布局(< 1.4或>= 1.4),但是说它应该在您的settings.py文件旁边可能是最安全的。您的管理模板文件夹将进入您的基本模板文件夹:templates/admin/。
发布于 2014-02-06 12:13:48
你想对这个情妇做什么“.”在评论栏里?
如果是意味着父目录,则可以使用os.path.dirname(BASE_DIR)。
第二部分:
这取决于您或团队的工作;我喜欢将模板目录保存在每个应用程序的目录中(如果您这样做,您不需要定义TEMPLATE_DIRS)。我的意思是,如果我有新闻应用的模板,它们就会变成../news/templates/。但是这次我的朋友(前端开发者)说我找不到他们,我们能把他们都放在一个地方吗?因此,我将它们放在一个带有子目录(../templates/news/)的目录中。这个主模板目录位于主项目目录中(靠近manage.py文件)。如果将这个主目录添加到INSTALLED_APPS (因为它是一个应用程序),您也不需要定义TEMPLATE_DIRS。甚至可以在这里创建models.py admin.py文件。
发布于 2014-02-06 11:56:31
考虑到问题的第二部分,根据这的说法,模板最安全的部分是在项目主目录下创建一个templates dir (例如blog)。
至于第一部分,我不太清楚。
https://stackoverflow.com/questions/21602024
复制相似问题