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 に対して 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にはページをレンダリングするメソッドがありません。

これを行うための別の/より良い方法がある場合は、それが何であるかを知りたいです.

于 2013-03-13T18:09:33.577 に答える