它应该自动列在Settings.py中还是我必须添加它?我正在开发一个非常困难的时候提供一个图像文件,而且文档对我来说太简洁了,并且由于某些原因不能清楚地向我说清楚。我想查看我的template_context_processors是什么,但它位于何处?它不在我的settings.py文件中。我是否需要对此进行编辑?
("django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.contrib.messages.context_processors.messages")
答案 0 :(得分:45)
在settings.py
中,您可以定义TEMPLATE_CONTEXT_PROCESSORS
设置。
但是,django已为此设置定义了默认值
("django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages")
如果要添加维护默认处理器的自定义模板上下文处理器,可以在settings.py
import django.conf.global_settings as DEFAULT_SETTINGS
TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
'custom_context_processors.my_context_processor',
)
参考TEMPLATE_CONTEXT_PROCESSORS doc。
答案 1 :(得分:3)
您可以跳转到django python shell并导入设置,查看应用正在使用的上下文处理器。
$ manage.py shell
> from django.conf import settings
> settings.TEMPLATE_CONTEXT_PROCESSORS
如果你没有覆盖它们,那么应该渲染默认值。
在静态文件上,检查您的STATICFILES_DIRS,这是django的开发服务器将为静态资产提供服务的地方:https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATICFILES_DIRS。
我在settings.py
:
from os.path import join, abspath
PROJECT_ROOT = abspath(join(dirname(__file__), '..', '..'))
STATICFILES_DIRS = [join(PROJECT_ROOT, 'public'), ]
这对您来说不一样,因为它取决于您如何布置项目。