2013-04-18 105 views
5

我想知道如何從另一個應用程序中「調用」應用程序。 基本上,我有,例如:Django:如何將應用程序集成到另一個應用程序

  • 日曆應用程序,並有一定的過程來呈現HTML日曆
  • 一個「主」的應用程序,顯示了一個網站的index.html

我想要主應用程序來調用日曆應用程序,並插入它在側邊欄中呈現的內容。

例如,CodeIgniter框架可以處理該問題。控制器可以調用另一個控制器,將它返回的內容(html輸出)保存在一個變量中,最後在將用於呈現最終html文件的上下文中包含此變量。

Django可能嗎? 感謝

回答

4

嗯,我想我可能會找到一個解決方案。我是Django的新手,所以我不知道這是否是一種很好的方法,如果它打破了一些傳統的規則,如果它打開了一些安全漏洞,或者簡單地說,還有其他更好的方法,但無論如何,它是有效的...

所以,我創建了我的應用程序日曆,和我的應用程序顯示。 我想要顯示調用日曆,呈現其模板,然後將結果插入模板顯示

這樣做,我在日曆上側用TemplateResponse代替HttpResponse

# Calendar view 

from django.template.response import TemplateResponse 

def render_calendar(request): 
    return TemplateResponse(request, 'calendar/calendar-template.html', {}) 

然後在顯示方面,得到了TemplateResponse實例,調用其render()方法,最後插入上下文中的rendered_content

# Show view 

from calendar import views 

def show(request, show_id): 
    cal = views.render_calendar(request) 
    cal.render() 
    context = {"calendar": cal.rendered_content} 
    return render_to_response("show/show-template.html", context) 

而這樣做的竅門!

0

排序... ...

有一個模板標籤{% ssi %},使您可以包括裏面另外一個模板,唯一的一點是,你將需要通過父模板中的所有所需的上下文變量其他模板。

+0

是的..事情是,我的「side-apps」(widget-like)非常獨立,我不想在一個地方處理所有應用程序的所有變量。 – Firas

+0

@Firas我不知道有任何其他方式,對不起,也許別人會知道... – Ngenator

+0

Thx無論如何,我欣賞它 – Firas

相關問題