覆盖 Django 小部件默认模板
Override Django widgets default templates
我想覆盖 Django (2.01) 小部件模板,因为我需要为每个输入、标签添加 类 并以不同方式定位它们
app
- templates
- app
- django
- forms
- widgets
- input.html
或
app
- templates
- django
- forms
- widgets
- input.html
或模板项目目录:
- templates
- django
- forms
- widgets
- input.html
None 其中有效,(即使我是文档中推荐的方式,以及我在 Whosebug 上看到的答案),它仍然从默认加载。
作为通用的小部件模板,我更愿意将它们放在模板项目目录中,但我默认只在已安装的应用程序中搜索小部件。
这似乎是 Django 1.11 中的一个问题。
这有点烦人。它可以通过更改您的设置来修复。所以你的主站点必须有这些设置。
INSTALLED_APPS = [
...
'django.forms',
...
]
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
遗憾的是,您无法通过已安装的应用程序自动执行此操作。如果已安装的应用程序覆盖了 Django 模板小部件,则需要对其进行记录,并且用户必须在其站点设置中添加此代码。
您无需更改 "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',
],
},
},
]
我想覆盖 Django (2.01) 小部件模板,因为我需要为每个输入、标签添加 类 并以不同方式定位它们
app
- templates
- app
- django
- forms
- widgets
- input.html
app
- templates
- django
- forms
- widgets
- input.html
或模板项目目录:
- templates
- django
- forms
- widgets
- input.html
None 其中有效,(即使我是文档中推荐的方式,以及我在 Whosebug 上看到的答案),它仍然从默认加载。
作为通用的小部件模板,我更愿意将它们放在模板项目目录中,但我默认只在已安装的应用程序中搜索小部件。
这似乎是 Django 1.11 中的一个问题。
这有点烦人。它可以通过更改您的设置来修复。所以你的主站点必须有这些设置。
INSTALLED_APPS = [
...
'django.forms',
...
]
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
遗憾的是,您无法通过已安装的应用程序自动执行此操作。如果已安装的应用程序覆盖了 Django 模板小部件,则需要对其进行记录,并且用户必须在其站点设置中添加此代码。
您无需更改 "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',
],
},
},
]