为什么我不能在Django-Oscar中自定义模板?

时间:2020-10-20 15:14:13

标签: django django-oscar

我正在尝试通过遵循文档来自定义基本模板。但是模板没有以任何方式响应我的更改...我在做什么错了?

我的模板从location()出发的路径:

.../django_shop/frobshop/frobshop/templates

我的项目结构:

enter image description here

我的设置:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            location('templates')
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.contrib.auth.context_processors.auth',
                'django.template.context_processors.request',
                'django.template.context_processors.debug',
                'django.template.context_processors.i18n',
                'django.template.context_processors.media',
                'django.template.context_processors.static',
                'django.contrib.messages.context_processors.messages',

                # Oscar specific

                'oscar.apps.search.context_processors.search_form',
                'oscar.apps.communication.notifications.context_processors.notifications',
                'oscar.apps.checkout.context_processors.checkout',
                'oscar.core.context_processors.metadata',
            ],
            'debug': DEBUG,
        }
    }
]

我的base.html:

{% extends 'oscar/base.html' %}

{% load i18n %}

{% block title %}
{% trans 'test title' %}
{% endblock %}
test

1 个答案:

答案 0 :(得分:2)

您的base.html放在错误的位置-它必须位于frobshop/templates/oscar/base.html中,而不是frobshop/templates/base.html中。

Oscar的所有模板都以oscar/前缀命名,因此要覆盖它们,您必须执行相同的操作。