Интеграция приложения Django с django-cms - PullRequest
3 голосов
/ 01 апреля 2011

Привет, ребята.У меня есть специальное приложение Contact Form, и я хочу интегрировать его с django-cms.Насколько я понимаю, я должен зарегистрировать приложение с помощью django-cms, а затем в своих представлениях я должен вернуть экземпляр RequestContext вместо обычного экземпляра контекста, поэтому в моем views.py у меня есть

return render_to_response('my_template.html',
                          {'form': form},
                          context_instance=RequestContext(request))

Я не знаю, упускаю ли я что-то здесь, но моя проблема здесь в том, что я не хочу жестко задавать имя шаблона

my_template.html

, вместо этого я хочу, чтобы шаблон был таким жеЯ ставлю при добавлении новой страницы, поэтому мой вопрос: есть ли способ получить шаблон со страницы django-cms, на которой размещено приложение, или мне нужно жестко закодировать шаблон для использования?

1 Ответ

5 голосов
/ 01 апреля 2011

Если ваш apphook представляет собой один вид, смонтированный на /, вы можете просто использовать {% extends request.current_page.get_template %}, однако это не работает на подстраницах в вашем приложении.

Для этого вам нужно будет повернуть кореньдля просмотра своего приложения, используйте cms.utils.page_resolver.get_page_from_request с аргументом use_path, чтобы получить страницу, затем вызовите get_template на странице и расширьте ее.

...