2013-03-16 2 views
11

나는 ref와 클래스 기반 뷰 Django 문서 (Django 1.4)의 주제를 조사했지만 이것에 대해서는 언급하지 않았다. 클래스 기반 뷰를 사용하여 템플릿 이름을 동적으로 설정하는 방법은 무엇입니까? 나는 다음과 같은 설정의 클래스 기반 동등한 찾고 있어요 :클래스 기반 뷰를 사용하여 템플릿 이름을 어떻게 동적으로 설정해야합니까?

urls.py

from django.conf.urls.defaults import * 
from mysite.views import dynamic 

urlspatterns = patterns('', 
    url(r'^dynamic/(?P<template>\w+)/$', dynamic),) 
) 

views.py

from django.shortcuts import render_to_response 

def dynamic(request, template): 
    template_name = "%s.html" % template 
    return render_to_response(template_name, {}) 
당신은 정의 할 필요가

답변

25

template_names의리스트를 돌려주는 get_template_names.

from django.views.generic import TemplateView 

class DynamicTemplateView(TemplateView): 

    def get_template_names(self): 
     return ['%s.html' % self.kwargs['template']] 
+0

'DynamixTemplateView (TemplateView)'대신'클래스 DynamixTemplateView (TemplateView)'를 사용합니다. – Bentley4

+0

예, 클래스를 의미합니다 : –

+0

Btw, return [self.kwargs [ 'template'] 대신 return [ '% s.html'% self.kwargs [ 'template']] 'URL에 html 접미어를 입력하지 않기 위해서입니다. 클래스 기반 뷰는 rlly 못 생겼어. – Bentley4

관련 문제