有没有办法在另一个Django应用程序的视图中使用修改后的上下文呈现django-cms页面?
...我知道“django-cms方式”是通过插件和钩子将你的其他应用程序整合到django-cms中。但是我想以相反的方式做到这一点,因为这对我来说更有意义,并且更容易重用应用程序,我找不到有关如何执行此操作的文档。应该有一种简单的方法可以从我的视图中调用django-cms视图并做一些“voodoo”来使它工作,对吗?
答案 0 :(得分:3)
from cms.views import details
def show_some_page(request):
return details(request, 'slug_of_page_to_show')
答案 1 :(得分:1)
我过去解决这个问题的方法是使用urllib2(或请求)对URL进行get请求,并从响应中提取相关的部分。
...
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没有有一个渲染页面的方法。
如果有不同/更好的方法来做到这一点,我很想知道它是什么。