2012-04-09 3 views
1

Я хочу интегрировать Усы в мое приложение Django. Какие шаги я должен предпринять, чтобы полностью заменить систему шаблонов Django на Mustache?Как изменить структуру шаблонов в Django?

Я бы хотел, чтобы render_to_response работал правильно с шаблонами Mustache, передавая все правые переменные с контекстом (STATIC_URL, запрос и т. Д.).

ответ

6

В принципе, вы должны заменить функцию render_to_response своей собственной реализацией, которая использует выбранную вами систему шаблонов. Django's render_to_response специфичен для системы шаблонов Django. Эта функция просто обертывает некоторые общие черты работы, используемые при использовании движка шаблонов django. Основы их работы описаны в Django's tutorial.

Используйте django.template.RequestContext для получения всех переменных контекста, указанных в настройке TEMPLATE_CONTEXT_PROCESSORS (где определяются STATIC_URL, запрос и т. Д.). Поскольку RequestContext ведет себя как словарь, вы можете без проблем передать его на усы. RequestContext принимает объект запроса в свой конструктор.

И, наконец, не забудьте вернуть нужный объект HttpResponse!

Так как я не так много пункта вентилятора:

  1. Создать экземпляр RequestContext.
  2. Объединить словарь, полученный с экземпляром RequestContext.
  3. Извлечь шаблон в строку.
  4. Оберните финальную строку экземпляром HttpResponse.
Смежные вопросы