2017-01-23 7 views
0

皆さん!私はテンプレート内で使用するために私の設定ファイルで宣言する定数値にアクセスしたいが、アプリケーション内のテンプレートではなく、私は私の設定ファイルで宣言するテンプレートを私のホームテンプレートで使いたい。テンプレート内でファイルを設定する際の変数

CMS_TEMPLATES = (
    ## Customize this 
    ('page.html', 'Page'), 
    ('feature.html', 'Page with Feature'), 
    ('homeTemplate.html', 'Home Template') // I want to use here 
) 

私はStackOverflowの中に同じ問題についてthis例を見つけましたが、すべてのケースでは、トップレベルのアプリケーションではない内部の変数を使用しています。

このテンプレート内でこの値を使用する最良の方法はなんですか?

答えて

1

私は質問することから始めます。なぜそれをやりたいのですか?それは奇妙な方法のようだ... あなたが使用しているテンプレートのディレクトリを調整する、私は推測する?

I wonder if you may have an XY problem.達成しようとしていることを投稿すると、この特定の問題の具体的な解決策よりも優れている可能性があります。

しかし、Djangoを使用しているプロジェクトやスクリプト、あるいは少なくともその環境の中でのみ、django変数(settings.pyを含む)を提供することができます。 from django.conf import settingsを実行すると、すべてのアプリでプロジェクトの最高レベルで使用できる設定がインポートされます。プロジェクトはこの大雑把な方法でレイアウトされています。

この answerのように
myproject - 
    - myapp1 
    - myapp2 
    - myproject 
     - settings.py 
     - wsgi.py 
    - manage.py 

、外部スクリプトについては、このようにY ou can still import the django settings

import os 
import django 
from django.conf import settings 

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 
django.setup() 
# now you can use settings.VARIABLE_NAME 

しかし:テンプレートのニーズにここから変数を取得するので、これはまだ、テンプレートにそれを得ることはありませんあなたはrenderにdjangoエンジンを使用して応答します。

djangoシステムでサービスされていない場合、はテンプレートではなく、通常のhtmlファイルです。それはあなたの全体的なプロジェクト内の別のアプリでテンプレートはなら

、あなたは、あなたのコンテキスト辞書の一部としてそれを渡すas laid out in the docs on templates.

関連する問題