2017-01-19 10 views
0

INSTALLED_APPSの下にパスを追加し、テンプレートタグのフォルダを作成して複数のアプリケーションで再利用しようとしました。しかし、それは動作していません。それを解決するスマートな方法はありますか?私が必要とするのは、プロジェクト全体のtemplatetagsを、グローバルにアクセス可能な単一のディレクトリに配置することです。djangoプロジェクト用にtemplatetagsにグローバルにアクセス

+0

プロジェクトのレイアウトと設定の変更を示すと、あなたの質問はより明確になります。 '' libraries'(https://docs.djangoproject.com/ja/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の古いバージョン用です。まだ返信いただきありがとうございます。 –

関連する問題