我已经搜索了基于类的视图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, {})
答案 0 :(得分:31)
您需要定义返回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']]