#django #django-1.7
#django #django-1.7
Вопрос:
кто-нибудь знает, может ли он использовать пользовательский каталог для «templatetags» eje: «my-project/templatetags»
Normal
My-Project-Name
My-App
__init__.py
templatetags
__init__.py
Нужны такие
My-Project-Name
templatetags
__init__.py
Ответ №1:
Это возможно. Просто добавьте местоположение вашего templatetags.py
каталога или каталога templatetags в Django settings.py
в OPTIONS
настройках ШАБЛОНОВ.
В моем случае я помещаю свои templatetags в libs/
каталог, который находится в корневом каталоге проекта.
У вас есть два варианта, builtins
или libraries
:
TEMPLATES = [{
...
'OPTIONS': {
...
'builtins': [
'libs.templatetags'
],
# or as @x-yuri pointed out, you can put them in `libraries`
'libraries': {
'my_tags': 'libs.templatetags',
},
}
}]
Если вы используете builtins
, он доступен везде, и вам не нужно использовать {% load %}
для этого.
Если вы используете, libraries
вам нужно использовать {% load my_tags %}
.
Комментарии:
1. Также есть
libraries
опция для тех, которые будут загружаться по требованию.
Ответ №2:
Это невозможно. Причина в том, что он templatetags
должен находиться внутри приложения django.
Из документации templatetags
:
Пользовательские теги шаблонов и фильтры должны находиться внутри приложения Django. Если они относятся к существующему приложению, имеет смысл связать их там; в противном случае вам следует создать новое приложение для их хранения.
Приложение должно содержать каталог templatetags на том же уровне, что и models.py , views.py и т.д. Если он еще не существует, создайте его — не забудьте
__init__.py
файл, чтобы убедиться, что каталог обрабатывается как пакет Python. После добавления этого модуля вам нужно будет перезапустить ваш сервер, прежде чем вы сможете использовать теги или фильтры в шаблонах.
Комментарии:
1. но приложение Django показывает, что его можно использовать в корне проекта, django/templatetags/cache.py и попытался добавить templatetags в INSTALLED_APPS..
2. Он не находится на корневом уровне. Именно в
django/django/templatetags/
котором находитсяapp
— См. Источник: github.com/django/django/tree/master/django/templatetags