Вы определили новый IndexView
, который не имеет подкласса Оскара IndexView
- следовательно, шаблон не может найти какой-либо соответствующий контекст.В настоящее время у вас есть просто TemplateView
без отношения к Оскару.
Предполагая, что вы следовали инструкциям форка приложения панели инструментов , вам необходимо создать подкласс Оскара IndexView
:
from oscar.apps.dashboard.views import IndexView as CoreIndexView
# Note - you subclass CoreIndexView, not TemplateView
class IndexView(CoreIndexView):
def get_template_names(self):
if self.request.user.is_staff:
return ['mytemplates/index.html']
else:
return ['dashboard/index_nonstaff.html','mytemplates/index.html']
См. этот бит документации , который объясняет, как это сделать.
При этом, если все, что вы хотите сделать, это переопределить шаблоны(а не какая-либо логика представления), тогда действительно нет необходимости переопределять представления.Просто переопределите шаблоны Оскара , как описано здесь - так что вы можете добавить шаблон yourproject/templates/dashboard/index.html
в ваш проект, который будет загружен в предпочтение стандартному шаблону Оскара.