문제

3 개의 django 앱이 있다고 가정 해 봅시다. 국가, 앱 사회의 그리고 앱 재정적인.

국가는 '마스터 내비게이션'앱입니다. 모든 국가를 '색인'보기에 나열하고 각국의 '세부 사항'보기에 세부 사항을 보여줍니다.

각 국가의 세부 사항에는 소셜 앱 (소셜 앱)과 재무 세부 사항 (금융 앱)이 포함됩니다.

사회적, 재무 모두 세부적 견해를 가지고 있습니다 (각 국가마다)

국가가 제공 한 마스터 디테일보기에 해당 하위 디테일보기를 '플러그'하는 우아한 방법이 있습니까? 따라서 각 국가 세부 사항 페이지에 대해 해당 국가의 소셜 및 재무 세부 사항을 보여주는 2 개의 탭이 표시됩니다.

도움이 되었습니까?

해결책

이 문제에 사용하는 2 가지 일반적인 솔루션 :

부분 템플릿 :
작업중인 객체를 제외하고보기에서 물건이 필요하지 않은 "소셜"및 "재무"를 렌더링하기위한 템플릿을 만듭니다 (객체 기능 또는 템플릿 태그를 사용하여 렌더링합니다). 그런 다음 쉽게 { % 포함 %} it (필요한 변수를 먼저 설정) 할 수 있습니다.

Ajax :
xmlhttprequest (request.is_ajax ())에서 호출되는 것을 인식하는 "소셜"및 "재무"뷰를 만드십시오. 그들이 있다면, 그들은 주변의 모든 html없이 div 요소 만 반환합니다. 이렇게하면 마스터 페이지가 렌더링 할 수 있으며 해당 콘텐츠를 즉시 추가하십시오.
Ajax Way에는 몇 가지 장점이 있습니다. 전체 페이지와 동일한 요청에서 플러그인보기를 렌더링하지 않으므로 이러한 플러그인 뷰가 많이 있으면 마스터 페이지가 더 빠르게로드되며 스마트 JavaScript 만 선택할 수 있습니다. 관련 플러그인 뷰가 필요합니다.
또한 일반보기를 사용하여 템플릿에서 필요한 데이터를 생성 할 수 있습니다 (부분 템플릿 메소드에서는 실제로 할 수 없습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top