2

有什么方法可以从另一个 Django 应用程序的视图中渲染一个 django-cms 页面,并修改上下文?

...我知道“django-cms 方式”是通过插件和挂钩将您的其他应用程序集成到 django-cms 中。但我想反过来做,因为这对我来说更有意义,并且更容易重用应用程序,我没有找到关于如何做到这一点的文档。应该有一种简单的方法可以从我的视图中调用 django-cms 视图并执行一些“巫术”来使其工作,对吗?

4

2 回答 2

3
from cms.views import details

def show_some_page(request):
    return details(request, 'slug_of_page_to_show')
于 2013-06-13T14:40:57.783 回答
1

我过去解决这个问题的方法是使用 urllib2(或请求)对 URL 进行获取请求,并从响应中提取相关部分。

...
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()
...

Django-CMS 中的每个page对象都有一个.get_absolute_url()方法,这就是我以编程方式获取 URL 以请求的方式,但据我所知,Django-CMS API没有呈现页面的方法。

如果有不同/更好的方法可以做到这一点,我很想看看它是什么。

于 2013-03-13T18:09:33.577 回答