1

私はに関数を持っています、views.py例えばこのようなもの:

def get_base_content():
    footer = SiteContent.objects.get(pk=1)
    return {
        "footer" : footer,
}

この関数を自分で呼び出して変数templateを使用するにはどうすればよいですか?footer

4

2 に答える 2

2

この変数をすべてのテンプレートに表示する場合は、テンプレートコンテキストプロセッサを実装する必要があります。

コードに最小限の変更を加えるだけで済みます。

def get_base_content(request):
    footer = SiteContent.objects.get(pk=1)
    return {"footer" : footer}

次に、それを別のファイルに追加して、それを呼び出しますcustom_context.py。設定settings.pyに追加します。TEMPLATE_CONTEXT_PROCESSORS

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.core.context_processors.tz",
    "django.contrib.messages.context_processors.messages",
    "myapp.custom_context.get_base_content", # don't forget the comma!
)

これで、ビューコードで、を使用していることを確認する必要がありますRequestContext。これを行う最も簡単な方法は、renderショートカットを使用することです。

from django.shortcuts import render

def myview(request):
   return render(request,'hello.html',{'foo': 'bar'})

あなたhello.htmlが持っているだろう{{ foo }}{{ footer }}

于 2012-11-11T10:33:06.397 に答える
1

テンプレートタグを作成する必要があります。場合によっては、包含タグを確認することをお勧めします。

于 2012-11-11T10:00:40.473 に答える