2009-11-08 2 views
4

장고에서 다른 플랫 페이지에 대한 특정 템플릿을 연결할 수 있습니까? 예를 들어장고의 플랫 페이지에 대한 특정 템플릿

는 :

/about/ -> templates/flatpages/about.html 
/contact/ -> templates/flatpages/contact.html 

이것은 내가 무엇을 가지고 있지만 모든 페이지는 default.html을 템플릿

url(r'^(?P<url>about/)$', 'django.contrib.flatpages.views.flatpage'), 
url(r'^(?P<url>contact/)$', 'django.contrib.flatpages.views.flatpage'), 
url(r'^(?P<url>feedback/)$', 'django.contrib.flatpages.views.flatpage'), 

답변

7

당신이 가지고있는 Django의 버전을 모르지만, 1.1.1에서는 flatpage 관리자 패널의 추가/편집 하단에 "고급 옵션"링크가 있습니다 (예 : http://127.0.0.1:8000/admin/flatpages/flatpage/add/). 주석을 활성화 할 수 있습니다 . registraion 요구 사항 및 변경 템플릿

프로그래밍, 당신은 할 수 있습니다.?

from django.contrib.flatpages.models import FlatPage 
my_flat_page = FlatPage.objects.get(title="example") 
my_flat_page.template_name = "/flatpages/example.html" 
my_flat_page.save() 
#or just: 
#from django.contrib.flatpages.models import FlatPage 
#FlatePage.objects.filter(title="example").update(template_name="/flatpages/example.html") 
#if you like one-liners 
1

물론 가리! 명령어 here에 따라 플랫 페이지를 설치 한 후에 특정 평면 페이지에 대한 기본 템플릿 (flatpages/default.html)을 덮어 쓸 수 있습니다. 구체적으로 FlatPage model (예 : template_name 필드)의 인스턴스를 사용자 정의 할 수 있습니다. 프로그래밍 방식 으로든 다른 모델, 또는 나는 관리자 페이지에서 믿습니다.

+0

을 그것은 관리에서 할 수는 없습니다 - 내가 그 기능이 제거 된 생각 내가 할 수있는 방법이 프로그래밍 – Eeyore

+0

은 flatpage을 받기 (Flatpages.object에서 title = "about"등으로 검색) 원하는 'template_name' 속성을 원하는 값으로 설정하십시오 ("fla tpages/about.html "등) 저장하십시오. 내가 말했던 것처럼 다른 모델과 마찬가지로! –

관련 문제