Я бы согласился с @ marr75, так как вы, вероятно, можете достичь того, что вы хотите сделать, используя JavaScript (см. Страницу Google JavaScript для GCal API ).
Одним из решений было бы написать собственную настраиваемую команду управления , которая заполняет низкоуровневый кеш Django , а затем использовать эти переменные внутри вашего шаблона. Затем вы можете настроить эту команду управления для периодического запуска в качестве cronjob для поддержания актуальности данных. Вам не нужно кэшировать отдельные переменные - вы всегда можете кэшировать целый блок HTML, созданный с использованием iCalendar (который я предполагаю this ).
Если бы вы дали немного больше подробностей о том, что это такое, то я могу дать ответ, который немного более полезен, чем этот. Кроме того, вы можете также взглянуть на декоратор кэша для каждого просмотра Django .
РЕДАКТИРОВАТЬ: Пример может выглядеть следующим образом:
from django.core.cache import cache
# Generate HTML block to cache
html = '<div>Calendar</div>'
# Cache the HTML as 'google_calendar'
cache.set('google_calendar', html, 3600)
И затем, на ваш взгляд, вы можете просто передать этот кэшированный HTML обратно следующим образом:
from django.shortcuts import render_to_response
from django.core.cache import cache
def home(request):
data = {
'gcal': cache.get('google_calendar')
}
return render_to_response('home.html', data)