Применение списка элементов к каждому представлению в views.py - PullRequest
1 голос
/ 29 февраля 2020

Есть ли способ применить список элементов к каждому представлению без необходимости делать это вручную для каждого представления? У меня есть список элементов в моей панели навигации, и я должен добавить это к каждому представлению, чтобы оно отображалось на каждой странице:

category_list = Category.objects.all()
context = {
    'category_list': category_list
    }

1 Ответ

1 голос
/ 29 февраля 2020

Это делается с помощью контекстных процессоров [Django -doc] . Это функции, которые добавляют элементы в контекст каждый раз при отображении шаблона. Например, вы можете записать такой процессор в файл с именем app/context_processors.pyapp именем вашего приложения):

# app/context_processors.py

def <b>category_list</b>(request):
    return {
        'category_list': Category.objects.all()
    }

В файле settings.py вы затем зарегистрируете процессор контекста:

# settings.py

# &hellip;

TEMPLATES = {
    # &hellip;,
    'OPTIONS': {
        # &hellip;,
        'context_processors': [
            # &hellip;,
            <b>'app.context_processors.category_list'</b>
        ]
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...