Панель инструментов не заполняет значения после разветвления шаблона django-oscars - PullRequest
0 голосов
/ 01 июня 2018

вот мой view.py из панели инструментов -

from django.views.generic import TemplateView
class IndexView(TemplateView):
    def get_template_names(self):
    if self.request.user.is_staff:
      return ['mytemplates/index.html']
    else :
      return ['dashboard/index_nonstaff.html','mytemplates/index.html']

Так что я успешно смог разветвить приложение и расширить шаблоны, но по какой-то причине на панели инструментов не отображаются значения

1

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Я правильно следил за всем в документации, наконец-то разобрался с ошибкой.В моем файле settings.py я указал путь к своим шаблонам перед стандартными шаблонами django-oscars.

Ниже приведен фрагмент правильного пути, каким он должен быть

TEMPLATES = [  
'DIRS': [OSCAR_MAIN_TEMPLATE_DIR, 
'path to/mytemplates', ], 
0 голосов
/ 02 июня 2018

Вы определили новый 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 в ваш проект, который будет загружен в предпочтение стандартному шаблону Оскара.

...