Почему мой contextProcessor не работает для всех шаблонов? Джанго 2.2.1

Как следует из названия, я установил обработчик ввода, но он работает не для всех шаблонов моей страницы, а только для некоторых из них, но не для всех.

Я создал context_processor.py внутри своего приложения.

def categories_processor(request):
   enterprise = enterprisedata.objects.get(id=0)        
   return {'enterprise': enterprise}

Я слышал, что это все, что мне нужно для этого.

Но это некоторые шаблоны, когда я пытаюсь вызвать его, например:

{% block title %}
<title>{{enterprise.name}} | Carrito</title>
{% endblock %}

Не работает.

Любая помощь? что-то, чего мне не хватает? Спасибо!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
100
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам нужно добавить его в настройках context_processors (внутри файла settings.py) в Django:

'OPTIONS': {
    'context_processors': [
        'django.template.context_processors.debug',
        'django.template.context_processors.request',
        'django.contrib.auth.context_processors.auth',
        'django.contrib.messages.context_processors.messages',
        'django.template.context_processors.media',
        'path.to.context_processor.categories_processor'
    ],
},
Ответ принят как подходящий

Вы должны добавить этот context_processor в файл вашего проекта settings.py следующим образом:

TEMPLATES = [
    {
       ......
        'OPTIONS': {
            'context_processors': [
               .........
                'yourapp.context_processor.categories_processor',
            ],
        },

Мое приложение называется «adminview», я выразился так: adminview.context_processor.enterprise_processor, но там написано «Нет модуля с именем adminview».

Luis Bermúdez 09.07.2019 07:32

@LuisBermúdez все, что вам нужно сделать, это указать правильный путь для вашей функции def categories_processor(request):

arjun 09.07.2019 07:35

Как мне это сделать? извините, я новичок в джанго :(

Luis Bermúdez 09.07.2019 07:37

Вы написали def categories_proccessor(request): внутри your_app/context_processor.py? Если это так, то это решение должно работать.

arjun 09.07.2019 07:40

Извини, моя ошибка. Я поставил «apps.adminview.context_processor.enterprise_processor» вместо «adminview.context_processor.enterprise_processor», и это работает, спасибо!

Luis Bermúdez 09.07.2019 07:46

Другие вопросы по теме