current_site
.
from django.conf import settings
from django.contrib.sites.models import Site
def current_site(request):
'''
A context processor to add the "current site" to the current Context
'''
try:
current_site = Site.objects.get_current()
return {
'current_site': current_site,
}
except Site.DoesNotExist:
# always return a dict, no matter what!
return {'current_site':''} # an empty string
Чтобы этот код заработал, нам нужно добавить эту функцию в список settings.TEMPLATE_CONTEXT_PROCESSORS
. Допустим, директория проекта называется "mysite". В ней создаем папку "context_processors" и в ней файл с именем "current_site.py". Этот файл должен содержать функцию current_site, код которой приведен выше.
Вот как выглядит кусок кода из файла mysite/settings.py:
TEMPLATE_CONTEXT_PROCESSORS = (
"mysite.context_processors.current_site.current_site",
"django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
)
Вуаля! И теперь в любом шаблоне мне доступна переменная current_site!
Оригинал