Вот мой способ решения, может быть кому-то пригодится.
ВСЕ ЗАДЕЙСТВОВАННЫЕ ПРИЛОЖЕНИЯ ДОЛЖНЫ БЫТЬ ПОДКЛЮЧЕНЫ!
Проблема решилась написанием кастомного тега (собственного тега)
в django 1.8.2!
Делал я вот так:
1) Создаем
в папке с ПРИЛОЖЕНИЕ (АППОМ, ну т.е. в той папке, которая создалась при выполнении команды startapp) папку
templatetags.
2) В папке templatetags создаем:
а) Пустой файл __init__.py (файл, который ставит в известность Python, что эта директория является модулем Python)
б) Файл с названием нашего нового тега (
в моем случе он называется sidebar.py). В этом файле будет происходить некая обработка! В моем случае: регистрация тега, выборка из БД и возврат контекста.
3) Открываем наш только что созданный файл sidebar.py и пишем:
from django import template
from blog.models import RightSidebarWidgets #Импортируем нужные нам модели.
# экземпляр класса, в котором все наши теги будут зарегистрированы
register = template.Library()
# регистрируем наш тег, который будет выводить шаблон right_sidebar.html
@register.inclusion_tag("blog/right_sidebar.html") #В кавычках вводите путь до шаблона! он может быть у каждого свой!
# Создаем сам тег!
def show_sidebar():
widgets = RightSidebarWidgets.objects.all() # Делаем выборку из БД
return {'widgets': widgets} # Возвращаем контекст
Далее в том файле где должен быть подключен наш зарегистрированный тег и его шаблон пишем:
- В начале файла пишем: {% load sidebar %} # Где sidebar - Название нашего файла тега, находящегося в папке templatetags, но только без расширения!
- И в том месте где должен быть выведен наш шаблон пишем: {% show_sidebar %} # Где show_sidebar - Название нашего тега описанного и зарегистрированного в файле sidebar.py, который в свою очередь, лежит в папке templatetags
Вот собственно и все. Таким способом я решил проблему.
Если вдруг у Вас не работает тег - проверьте его на ошибки и если в теге у Вас нет ошибок и Вы в этом уверены, то
Стоит проверить, что:
— в директории templatetags есть файл __init_.py
— приложение добавлено в INSTALLED_APPS
— если шаблонный тег приложения myapp вызывается из шаблона приложения otherapp, то в INSTALLED_APPS ‘myapp’ должно быть левее (выше) ‘otherapp’
— установлены все зависимости, необходимые в myapp_tags.py
— убедиться, что возможно импортировать сам myapp_tags.py
python manage.py shell
>>> from myapp.templatetags import myapp_tags
— сервер перезагружен после последнего изменения кода
---
Всем спасибо и удачи!