私はに関数を持っています、views.py
例えばこのようなもの:
def get_base_content():
footer = SiteContent.objects.get(pk=1)
return {
"footer" : footer,
}
この関数を自分で呼び出して変数template
を使用するにはどうすればよいですか?footer
この変数をすべてのテンプレートに表示する場合は、テンプレートコンテキストプロセッサを実装する必要があります。
コードに最小限の変更を加えるだけで済みます。
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 }}
テンプレートタグを作成する必要があります。場合によっては、包含タグを確認することをお勧めします。