Этого очень легко добиться с помощью различных шаблонизаторов.
1.Определите альтернативный (легкий) шаблонизатор в настройках вашего проекта
TEMPLATES = [
# The default engine - a heavy one with a lot of context processors
{
'NAME': 'default',
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.i18n',
'django.template.context_processors.request',
'django.template.context_processors.media',
'django.template.context_processors.static',
'some_app_1.context_processors.very_heavy_cp_1',
'some_app_2.context_processors.very_heavy_cp_2',
'some_app_3.context_processors.very_heavy_cp_3',
],
'debug': True,
},
},
# Light engine - only very necessary things go here
{
'NAME': 'light',
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.i18n',
'django.template.context_processors.request',
'django.template.context_processors.media',
'django.template.context_processors.static',
],
'debug': True,
},
},
]
2.Как использовать движок света в ваших представлениях
some_app_1.views.py
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.views.generic import View, TemplateView
Образец освещения:
class TestLightView(View):
"""Test light view."""
template_name = 'some_app_1/test_light_view.html'
def get(self, request):
context = {}
response = render_to_response(
self.template_name,
context,
context_instance=RequestContext(request),
using='light' # Note, that we use `light` engine here
)
return response
Образец обычного (тяжелого) просмотра:
class TestNormalView(View):
"""Test normal view."""
template_name = 'some_app_1/test_normal_view.html'
def get(self, request):
context = {}
response = render_to_response(
self.template_name,
context,
context_instance=RequestContext(request),
using='default' # Note, that we use `default` engine here
)
return response
Если вы используете TemplateView
, определите template_engine
свойство.
Образец облегченного просмотра:
class TestTemplateLightView(TemplateView):
"""Test template light view"""
template_engine = 'light' # Note, that we use `light` engine here
# Your code goes here
Образец обычного (тяжелого) просмотра:
class TestTemplateNormalView(TemplateView):
"""Test template normal view."""
template_engine = 'default' # Note, that we use `default` engine here
# Your code goes here