Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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覆盖管理模板_Django - Fatal编程技术网

django覆盖管理模板

django覆盖管理模板,django,Django,我跟在后面。我正在尝试覆盖管理模板(base\u site.html) 我将文件从django/contrib/admin/templates复制到mytemplates/admin/base\u site.html 我还更新了settings.py: #Base Directory BASE_DIR = os.path.dirname(os.path.abspath(__file__)) #Template directories TEMPLATE_DIRS = (os.path.join(

我跟在后面。我正在尝试覆盖管理模板(
base\u site.html

我将文件从
django/contrib/admin/templates
复制到
mytemplates/admin/base\u site.html

我还更新了settings.py:

#Base Directory
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

#Template directories
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'mytemplates'),)

我尝试将mytemplates文件夹放在项目文件夹的根目录中,也放在mysite文件夹中,但没有成功。任何指针都会很棒

编辑了以前的用户响应--这是有效的:

我认为您到templates目录的相对路径是错误的

如果你遵循这些步骤,它应该会工作:(我自己测试过)

  • mytemplates
    dir与
    manage.py
    文件并排放置

    project
    -app1
    -app2
    -mytemplates
        -admin
            -base_site.html
    -manage.py
    
  • 将模板目录更改为:

    TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'mytemplates'),)
    
  • 确保模板加载程序的顺序为:

    TEMPLATE_LOADERS = (
    
        'django.template.loaders.filesystem.Loader',
        'django.template.loaders.app_directories.Loader',
    
    )
    
  • @亚登斯特的回答几乎对我有用。我想这是一个配置问题

    如果你遇到麻烦,我建议你用这句话:

    TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'mytemplates'),)
    
    接下来,放置一个断点以显示实际结果,或者使用
    打印模板\u DIRS


    这是您应该放置要覆盖的模板的位置。

    您可以覆盖所有模板

    在模板中创建管理目录并添加文件

    所有文件都将被删除

    @kat russo,thx;)

    我试图根据文档设置管理模板

    project_name
    -app1
    -app2
    -project_name //main folder -> settings.py , urls.py, wsgi.py
    -templates
    -admin
      -project_name
         base.html
    
    没有成功,但是

     -templates
       -admin
          base.html
    
    对我有用

    我的配置(Django 1.10.4 w/Django CMS 3.4.1)


    使用此配置时,
    admin
    不应该是
    mytemplates/
    的子目录吗?只要在
    TEMPLATE\u DIRS=(os.path.join…
    这很让人困惑,因为我看到人们在应用程序、项目中指定模板,现在在这里——在项目库?我甚至不知道该怎么称呼这个级别谢谢@3176243。我正在绞尽脑汁想如何进行此设置。
    TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, "templates"),],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'sekizai.context_processors.sekizai',
                'cms.context_processors.cms_settings',
            ],
    
        },
    },
    ]