14

クラスベースのビュー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, {})
4

1 に答える 1

32

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']]
于 2013-03-16T10:38:29.440 に答える