2013-04-18 4 views
5

다른 애플리케이션 내부에서 애플리케이션을 "호출"할 수있는 방법을 알고 싶습니다. 기본적으로, 예를 들어,이 :Django : 다른 앱 내부에 앱을 통합하는 방법

  • HTML의 달력을 렌더링하기 위해 어떤 과정을 수행하는 캘린더 응용 프로그램
  • 웹 사이트의 index.html을을 표시하는 "메인"응용 프로그램

메인 앱에서 캘린더 앱을 호출하고 사이드 바에서 렌더링하는 내용을 삽입하고 싶습니다.

예를 들어 CodeIgniter 프레임 워크에서 처리 할 수 ​​있습니다. 컨트롤러는 다른 컨트롤러를 호출하고, 반환 된 내용 (html 출력)을 변수에 저장하고, 마지막으로이 변수를 컨텍스트에 포함시켜 최종 html 파일을 렌더링합니다.

장고에서 가능한가요? 감사

답변

4

글쎄, 내가 해결책을 찾은 것 같아요. 나는 장고에 익숙하지 않기 때문에 그것이 좋은 방법인지, 어떤 전통적인 규칙을 위반했는지, 어떤 보안 구멍을 열 었는지, 아니면 단순히 다른 더 좋은 방법이 있는지는 모르지만, 어쨌든, 그것은 작동한다. ...

내 응용 프로그램을 만들었습니다. 캘린더 및 내 응용 프로그램 보기입니다. 표시을 표시하여 달력을 호출하고 템플릿을 렌더링 한 다음 표시 템플릿에 결과를 삽입합니다.

# Calendar view 

from django.template.response import TemplateResponse 

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

그런 다음 표시면에,의 TemplateResponse 인스턴스를 얻을 수는 render() 메소드를 호출하고, 마지막으로 상황에 맞는 내부 rendered_content를 삽입 :

내가 일정 측에 TemplateResponse 대신 HttpResponse을 사용하는 것을해야 할 일 :

# 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"(위젯과 같은)은 매우 독립적이어서 한 곳에서 모든 응용 프로그램의 모든 변수를 처리하고 싶지 않습니다. – Firas

+0

@Firas 다른 어떤 방법도 모르겠다. 미안하지만 다른 누군가가 알게 될지도 모른다. – Ngenator

+0

어쨌든 Thx 어쨌든, 고맙습니다. – Firas

관련 문제