是否有任何方法從另一個Django應用程序中的視圖渲染django-cms頁面並使用修改的上下文?從其他Django應用程序渲染Django-cms頁面
...我知道「django-cms方式」是通過插件和鉤子將您的其他應用程序集成到django-cms中。但我想反過來這樣做,因爲這對我來說更有意義,並且更容易重用應用程序,並且我沒有找到有關如何執行此操作的文檔。應該有一個簡單的方法來從我的視圖中調用django-cms視圖,並執行一些「巫術」來使其工作,對吧?
是否有任何方法從另一個Django應用程序中的視圖渲染django-cms頁面並使用修改的上下文?從其他Django應用程序渲染Django-cms頁面
...我知道「django-cms方式」是通過插件和鉤子將您的其他應用程序集成到django-cms中。但我想反過來這樣做,因爲這對我來說更有意義,並且更容易重用應用程序,並且我沒有找到有關如何執行此操作的文檔。應該有一個簡單的方法來從我的視圖中調用django-cms視圖,並執行一些「巫術」來使其工作,對吧?
我過去解決這個問題的方法是使用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沒有渲染頁面的方法。
如果有不同的/更好的方法來做到這一點,我很想看看它是什麼。
from cms.views import details
def show_some_page(request):
return details(request, 'slug_of_page_to_show')
爲什麼downvote?這是一個非常好的主意。 @NeuronQ需要的醜陋的黑客將把所需的上下文變量放入請求變量中。 –
我有點困惑,爲什麼你想打電話給我從'我的看法'的'Django-CMS視圖'。你試圖完成什麼?這句話特別令人困惑:「應該有一種簡單的方法來從我的角度調用django-cms視圖,並且做一些」巫術「來使它工作,對嗎?」我無法想象自己從另一個視圖中調用視圖的時間... – respondcreate
@respondcreate我真正需要的是「從另一個Django應用程序中的視圖呈現django-cms頁面」,因爲我說過。如果有這樣的API,那很好,這是我希望有人知道的......如果沒有,那麼即使是從我的角度來說,調用django-cms視圖這種醜陋的方式也是好的......我'我使用新的webapp時完成了從視圖中調用視圖類型的東西我還沒有時間理解,並且必須儘快完成一個功能,然後在我明白事情是如何建立的時候進行重構。 – NeuronQ