2013-03-13 4 views
2

Есть ли способ визуализации страницы django-cms, с точки зрения другого приложения Django, с измененным контекстом?Render django-cms страница из другого приложения Django

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

+0

Я немного смущен тем, почему вы хотите назвать «образ django-cms из моего представления». Что конкретно вы пытаетесь достичь? Это предложение особенно запутывает: «Должен быть простой способ просто вызвать представление django-cms из моего представления и сделать несколько« вуду », чтобы заставить его работать, верно?» Я не могу думать о времени, которое я назвал представлением из другого представления ... – respondcreate

+0

@respondcreate, что мне действительно нужно, это «визуализировать страницу django-cms из представления в другом приложении Django», поскольку я сказал. Если для этого есть API, это здорово, я бы надеялся, что кто-то узнает ... если нет, тогда даже уродливый хакерский подход, как вызов представления django-cms из моего представления, будет хорошим ... Я ' я делал вызов-вид-из-вида типа вещей при работе с новым webapp. Я еще не успел понять, и мне пришлось сделать работу с функциями как можно скорее, а затем реорганизоваться после того, как я выяснил, как все было настроено ... – NeuronQ

ответ

1

Способ, которым я решил это в прошлом, - это получить запрос на URL-адрес с urllib2 (или запросами) и извлечь соответствующие фрагменты из ответа.

... 
site = Site.objects.get_current() 
protocol = 'http' if DEBUG else 'https' 
response = urllib2.urlopen('%s://%s%s' % (protocol, 
    site.domain, page.get_absolute_url())) # page is a Django-CMS page object 
html_content = response.read() 
response.close() 
... 

Каждый page объект в Django-CMS имеет метод .get_absolute_url(), так что это, как я получил URL для запроса программным способом, но, насколько я знаю, Django-CMS API не имеет метод для отображения страницы.

Если есть другой/лучший способ сделать это, я хотел бы посмотреть, что это такое.

3
from cms.views import details 

def show_some_page(request): 
    return details(request, 'slug_of_page_to_show') 
+1

Почему downvote? Это действительно хорошая идея. Уродливый взломать, требуемый @NeuronQ, заключался бы в том, чтобы в переменную запроса вставить нужные переменные контекста. –

 Смежные вопросы

  • Нет связанных вопросов^_^