기존 Django 사이트가 있으며 사용중인 템플릿이 매우 다양합니다. 우리는 시각적 디자인을 자신의 웹 사이트와 조화시키고 자하는 파트너 중 하나가 사용할 수 있도록 사이트의 사용자 정의 스킨 버전을 제공하기로 동의했습니다. 이것은 주요 사이트의 기능 및 데이터의 하위 집합을 사용하여 별도의 URL (Google에서 결정할 수 있음)에 있습니다.조건부로 기존 사이트를 스킨링하는 방법 (파트너 브랜딩 용)
제 질문은 : 많은 코드 또는 템플릿을 복제하지 않고 사이트에 reskin 기능을 추가하는 가장 좋은 방법은 무엇입니까?
URL : : 제가보기에는
함께 작동 할 몇 가지 요소가 필요, 사이트의 파트너 브랜드 버전을 가리키는 URL을 다른 세트를 가지고 있지만은 사이트가 페이지를 작성하는 데 필요한 모든 표준 경로 정보를 포함 할 수 있습니다.
템플릿은 '확장': 템플릿과 같은 다른 기반을 확장해야 할 필요가 대신
보기 로직을 {%가 'base.html'% 확장} {%가 '와 partner.html'%을 확장} :이 파트너 브랜드 버전 때 뷰 알고, 그래서 그들은 비즈니스 로직을 변경할 수 있도록 할 필요 적절하게
도메인 이름을 구문 분석하고 'partner'및 'partner_template'변수를 요청 객체에 추가하십시오. 따라서 비즈니스 로직을 처리하기 위해 뷰 내 request.partner에 액세스 할 수 있습니다. (. this answer에 따르면, 다른 모든 템플릿 태그와 같은 변수를한다 '확장')이
가{% extends request.partner_template|default:'base.html' %}
윌이 작품이 제대로 : 그럼, 다음과 같이 내 모든 템플릿을 편집해야? 더 좋은 방법이 있습니까?