Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改管理模板-Django教程2_Django_Templates - Fatal编程技术网

更改管理模板-Django教程2

更改管理模板-Django教程2,django,templates,Django,Templates,这个问题或多或少得到了回答,但对我来说不起作用,据我所知,有更多的人有同样的问题 在my settings.py中,我有以下几行: #TEMPLATE_DIRS = [os.path.join(BASE_DIR,'..', 'templates'),] TEMPLATE_DIRS = ("/root/GODJANGO/thedjango/django_project",) 这句话不管用。如果我写完整的路径,它是有效的,但它不是专业的,我不想在三个月后迁移服务器时出现问题,因为我不会记住这件

这个问题或多或少得到了回答,但对我来说不起作用,据我所知,有更多的人有同样的问题

在my settings.py中,我有以下几行:

 #TEMPLATE_DIRS = [os.path.join(BASE_DIR,'..', 'templates'),]
 TEMPLATE_DIRS = ("/root/GODJANGO/thedjango/django_project",)
这句话不管用。如果我写完整的路径,它是有效的,但它不是专业的,我不想在三个月后迁移服务器时出现问题,因为我不会记住这件事

  • 有人能告诉我如何正确地写路径吗(“我的意思是动态地写”)
  • 请告诉我哪里是放置我的模板文件夹和管理员模板文件夹的最佳目录

  • 考虑到问题的第二部分,根据模板最安全的部分是在项目主目录下创建一个
    templates
    dir(例如
    blog


    至于第一部分,我不确定。

    如果您有以下项目布局:

    manage.py
    myproject/
              settings.py
              urls.py
              wsgi.py
              templates/
                       admin/
    app1/
    app2/
    
    然后,您可以通过将以下内容放入
    设置.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")
    )
    ...
    
    如您所见,我们正在手动遍历文件树以查找templates文件夹的位置,并动态分配它


    templates文件夹的最佳位置取决于项目布局(<1.4或>=1.4),但最安全的做法可能是将其放在
    settings.py
    文件旁边。管理员模板文件夹将进入基本模板文件夹:
    templates/admin/

    你想对评论行中的这个参数“.”做什么

    如果它表示父目录,则可以使用
    os.path.dirname(BASE\u DIR)

    第二部分:

    这取决于你或你的团队合作;我喜欢将templates目录保存在每个应用程序的目录中(如果您这样做,则无需定义
    TEMPLATE\u DIRS
    )。我的意思是,如果我有新闻应用程序的模板,它们就会变成
    。/news/templates/
    。但是这次我的朋友(前端开发人员)说我找不到它们,我们能把它们放在一个地方吗?
    所以我把它们放在一个带有子目录的目录中(
    。/templates/news/
    )。此主模板目录位于主项目目录中(靠近manage.py文件)。如果您将此主目录添加到
    已安装的应用程序
    (因为它是一种应用程序),您也不需要定义
    模板目录
    。甚至你也可以在这里创建models.py admin.py文件。

    它显示了什么:“print[os.path.join(BASE_DIR,…,,,,,,,]”?我试了几次:print[os.path.join(BASE_DIR,…,,,,,,,]-bash:意外标记附近的语法错误`(“你为什么要更改模板目录?默认值是BASE\u DIR/templates,这对教程来说应该很好。行了!谢谢!我想投票支持你的答案,但我没有足够的声誉这么做,所以如果你投票支持我的问题,我将非常感谢你投赞成票。“谢谢”(;如果它有效,你可以通过点击向上投票按钮旁边的勾号来接受它作为正确答案。如果你告诉我它是在哪一分钟说的,我将不胜感激,谢谢!@BugFixer我刚刚看到了评论,对延迟表示歉意,但是由于我也不是很有经验,我建议观看整个教程。项目结构有时会令人痛苦。感谢您的解释,事实上我是Django的最新用户,所以我现在只关注官方教程,我想做正确的事情,并确定我采取的方式。问候!