有什么方法可以从另一个 Django 应用程序的视图中渲染一个 django-cms 页面,并修改上下文?
...我知道“django-cms 方式”是通过插件和挂钩将您的其他应用程序集成到 django-cms 中。但我想反过来做,因为这对我来说更有意义,并且更容易重用应用程序,我没有找到关于如何做到这一点的文档。应该有一种简单的方法可以从我的视图中调用 django-cms 视图并执行一些“巫术”来使其工作,对吗?
有什么方法可以从另一个 Django 应用程序的视图中渲染一个 django-cms 页面,并修改上下文?
...我知道“django-cms 方式”是通过插件和挂钩将您的其他应用程序集成到 django-cms 中。但我想反过来做,因为这对我来说更有意义,并且更容易重用应用程序,我没有找到关于如何做到这一点的文档。应该有一种简单的方法可以从我的视图中调用 django-cms 视图并执行一些“巫术”来使其工作,对吗?
from cms.views import details
def show_some_page(request):
return details(request, 'slug_of_page_to_show')
我过去解决这个问题的方法是使用 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没有呈现页面的方法。
如果有不同/更好的方法可以做到这一点,我很想看看它是什么。