Django Oscar 模板覆盖不起作用
Django Oscar Template override not working
我面临 django oscar 模板覆盖问题。我正在使用 Oscar 2.0.3 和 Django 2.2.7
我正在使用文档中提到的方法 1。我的项目结构看起来像
myproject
cache
catalogue (I have overridden this app)
categories
images
templates
base.html
myproject
manage.py
我已将 TEMPLATES
编辑为
import os
location = lambda x: os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', x)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [location('templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'oscar.apps.search.context_processors.search_form',
'oscar.apps.checkout.context_processors.checkout',
'oscar.apps.customer.notifications.context_processors.notifications',
'oscar.core.context_processors.metadata',
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
我正在 base.html
中进行更改,但它们不会在 127.0.0.1:8000/catalogue/
中复制(127.0.0.1:8000
重定向到此 url)
感谢帮助!谢谢!
您使用的教程适用于旧版本的 Oscar (1.6)。
在 Oscar 2.0 中,模板结构发生了变化。具体来说 base.html
现在是 oscar/base.html
。这意味着要覆盖它,您必须在 templates/oscar/base.html
而不是 templates/base.html
.
处创建一个文件
这同样适用于所有其他 Oscar 模板。
我面临 django oscar 模板覆盖问题。我正在使用 Oscar 2.0.3 和 Django 2.2.7
我正在使用文档中提到的方法 1。我的项目结构看起来像
myproject
cache
catalogue (I have overridden this app)
categories
images
templates
base.html
myproject
manage.py
我已将 TEMPLATES
编辑为
import os
location = lambda x: os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', x)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [location('templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'oscar.apps.search.context_processors.search_form',
'oscar.apps.checkout.context_processors.checkout',
'oscar.apps.customer.notifications.context_processors.notifications',
'oscar.core.context_processors.metadata',
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
我正在 base.html
中进行更改,但它们不会在 127.0.0.1:8000/catalogue/
中复制(127.0.0.1:8000
重定向到此 url)
感谢帮助!谢谢!
您使用的教程适用于旧版本的 Oscar (1.6)。
在 Oscar 2.0 中,模板结构发生了变化。具体来说 base.html
现在是 oscar/base.html
。这意味着要覆盖它,您必须在 templates/oscar/base.html
而不是 templates/base.html
.
这同样适用于所有其他 Oscar 模板。