2011-03-07 2 views
0

나는 여러 개의 스킨을 가진 웹 사이트를 작성합니다. 각 스킨마다 고유 한 스타일 시트가 있습니다.Django에서 스타일 시트가 GET 변수에 의해 결정되고 DRY를 위반하지 않고 여러 스타일 시트를 사용하려면 어떻게해야합니까?

whatever?skin=foo 

페이지의 원인이됩니다 헤더에서이 HTML 포함 렌더링 할 : 보통 (

<link rel="stylesheet" type="text/css" href="/site_media/foo.css"/> 

을 나는 나는이 URL 있도록하는 GET 변수에 의해 결정하는 데 사용되는 피부를 싶습니다 사용자의 취향에 따라 스킨이 결정되기를 원하지만이 방법을 사용하기를 원하므로 사용자는 새로운 스킨의 모양을 미리 볼 수있을뿐만 아니라 개발 도중에 쉽게 만들 수 있습니다.)

이것은 장고에서 매우 쉽게 할 수 있습니다. 예를 들어, 템플릿을 사용할 수 있습니다. S 라인 :

<link rel="stylesheet" type="text/css" href="/site_media/{{skin}}.css"/> 

그리고이 같은보기 :

def whateverView(request): 
    """ called by URL /whatever """ 
    skin = request.GET.get('skin', "default") 
    c = RequestContext(request, {'skin': skin}) 
    html = whateverTemplate.render(c) 
    return HttpResponse(html) 

하지만 내가 모든 단일보기로 같은 코드를 추가 할 것 같은, 그런 식으로 할 필요가 싶지 않아 이는 DRY을 위반합니다.

그래서 코드를 한 번만 작성하면서 모든 페이지에서 작동하도록 할 수있는 방법이 있습니까?

답변

관련 문제