【问题标题】:getting TemplateDoesNotExist error in django 1.9在 django 1.9 中出现 TemplateDoesNotExist 错误
【发布时间】:2016-05-06 08:31:18
【问题描述】:

我今天面临一个奇怪的问题。我正在获取 TemplateDoesNotExist(见第一张图片),但是当我尝试使用 debug-toolbar 调试模板源时,它正确显示了模板路径(见图 2)更奇怪的是,当我单击特定模板按钮时,它正确显示了源模板。

这是我第一次遇到这样的问题。有人可以解释为什么我会收到此错误。

编辑:添加 settings.py 文件(相关部分)

SETTINGS_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(SETTINGS_PATH, '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',
        ],
    },
},

]

谢谢

)

【问题讨论】:

  • 不要发布难以阅读的文本图像,而是发布实际文本...以及重现错误所需的信息
  • 我只是想了解为什么即使路径上存在模板,我也会收到 TemplateDoesNotExist 异常?当我点击调试工具栏上的“模板”时检查第二张图片..(右侧)......请帮助我理解这个问题......我在这个问题上停留了很长时间
  • 您应该包括异常跟踪的任何有用部分。
  • @TheCardCheat 我想我面临着与这个问题(stackoverflow.com/questions/1926049/django-templatedoesnotexist)类似的问题,但是当我运行这个命令“chown root ./*”时......我得到了 Operation not allowed跨度>
  • @user3265443 该问题已接受的答案是对默认 django 模板加载的非常简单的解释,除非您已更改或在 INSTALLED_APPS 中没有“注册”,否则似乎是正常的(假设调试-工具栏是准确的,我不使用它)。你为什么要 chown 根的东西?如果您弄乱了参数,那么您可能会遇到导致该模板无法加载的访问异常,因此查看堆栈跟踪文本仍然很有用。

标签: django django-templates django-admin


【解决方案1】:

我今天升级到 1.9,突然遇到同样的问题。对我来说,在模板中添加“'APP_DIRS': True,”似乎可以解决问题(我通过添加/删除它切换了几次,它可以工作/失败)。

那么 APP_DIRS 做了什么:如果我正确理解了文档 (https://docs.djangoproject.com/en/1.9/ref/templates/api/),它会读取默认的 Django 模板(如果为真)。基本上,对于所有项目的 95% 来说,情况都应该如此。

【讨论】:

    【解决方案2】:

    我在 Django 1.9 上遇到了类似的问题。我刚刚更改了 settings.py 文件的 TEMPLATES 中的 DIRS

    试试这个

    'DIRS': [os.path.join(BASE_DIR,'templates')],
    

    代替你的

    'DIRS':[os.path.join(SETTINGS_PATH,'templates')], 
    

    试试这个代码而不是你的模板

    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',
    
            ],
        },
    },] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-19
      • 2013-06-20
      • 2015-09-02
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 2021-12-28
      • 2011-07-18
      相关资源
      最近更新 更多