Давненько я не брал в руки Python, но попробую
Сначала выполняется base
Потом index
Проблема не в порядке, а в том, что context_dict есть только в области видимости функции base
Соответственно вы можете передать в index словарь context_dict добавив его к аргументам функции при ее вызове в декораторе:
kwargs['context_dict'] = context_dict
В итоге ваш год должен выглядеть как - то так:
def base(func):
def wrapped(*args, **kwargs):
context_dict = {'categories_menu': Category.objects.filter(menu=True)}
kwargs['context_dict'] = context_dict
return func(*args, **kwargs)
return wrapped
@base
def index(*args, **kwargs):
page_list_new = Page.objects.order_by('-datetime')[:5]
context_dict = kwargs['context_dict']
context_dict['pages_new'] = page_list_new
return render(request, 'home/index.html', context_dict)