2017-05-16 67 views
1

我一直在学Django一个星期,但我不确定如何在settings.py文件中包含我用基本文件base.html创建的模板文件夹。 为了做到这一点,我已经在代码末尾更改了settings.py文件,如下所示。在Django中,如何包含我用settings.py中名为base.html的基本文件创建的模板文件夹?

TEMPLATE_DIRS = (
    BASE_DIR + '/templates/' 
) 
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
) 

在settings.py文件,已经有TEMPLATES看起来如下。

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

当我运行蟒蛇manage.py runserver命令,发生异常。

Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line 
    utility.execute() 
... 
File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line 108, in __init__ 
    "Please fix your settings." % setting) 
django.core.exceptions.ImproperlyConfigured: The TEMPLATE_DIRS setting must be a tuple. Please fix your settings. 

我认为TEMPLATES包括TEMPLATE_DIRS & TEMPLATE_LOADERS。但我不确定。 我该如何处理?

回答

2

文档建议将您的模板目录中的模板DIRS

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

您还应该使用os.path.join(BASE_DIR, 'templates')让你的模板路径。

https://docs.djangoproject.com/en/1.11/ref/settings/#std:setting-TEMPLATES

+0

感谢您的帮助。我使用1.8.7版本。我已经看到上面的版本是1.11。当我使用django 1.8.7版本时,上面的代码是否工作正常? –

+0

1.8文档建议这也是正确的 https://docs.djangoproject.com/en/1.8/ref/settings/#std:setting-TEMPLATES 此更改似乎已在1.8 https:// docs中引入.djangoproject.com/en/1.11/ref/templates/upgrading/ –

+0

谢谢。什么TEMPLATE_LOADERS?事实上,我不明白TEMPLATE_LOADERS的含义。 –

相关问题