2013-04-18 70 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

相关问题