2017-01-19 3 views
0

Я попытался добавить путь в INSTALLED_APPS и создать папку с тегами шаблонов и повторно использовать их в нескольких приложениях. Но это не работает. Есть ли разумный способ справиться с этим? Все, что мне нужно, - это разместить templatetags для всего проекта в одном каталоге, доступном по всему миру.Доступ к templatetags глобально для проекта django

+0

Ваш вопрос будет более ясным, если вы указали схему своего проекта и изменения, внесенные в настройки. Вы можете использовать опцию ['libraries'] (https://docs.djangoproject.com/en/1.10/topics/templates/#module-django.template.backends.django) в настройке' TEMPLATES', но это проще всего чтобы следовать за соглашением и добавить каталог templatetags в установленное приложение. – Alasdair

ответ

1

Теги шаблона должны быть в приложении.

Но как только они появятся, они могут использоваться шаблонами в любом приложении. Нет необходимости делать что-либо, чтобы сделать их доступными во всем мире.

+0

Вы правы. Я тестировал его и его работу. Это потрясающе. Благодарю. –

0

Это сработало для меня. В вашем settings.py добавить:

AUTOLOAD_TEMPLATETAGS = (
'appname.folder.templatetags' 
) 

В urls.py вашего приложения, добавьте:

from django.template.loader import add_to_builtins 
from tag in settings.AUTOLOAD_TEMPLATETAGS: 
    add_to_builtins(tag) 

Тогда в шаблоне:

{% load templatetags %} 

Это должно сделать их доступными во всем мире.

+0

@Alasdair Я забыл включить материал 'urls.py'. см. пересмотренный ответ. – hammerabi

+0

Это использование старых настроек шаблона до того, как в Django 1.8 было добавлено 'TEMPLATES'. [Это не будет работать в Django 1.9] (https://chris-lamb.co.uk/posts/importerror-cannot-import-name-add_to_builtins-under-django-19). – Alasdair

+0

Это не сработало для меня. Как вы уже упоминали, это для старых версий Django. Все еще благодарность за ответ. –

Смежные вопросы