Как динамически создавать имена шаблонов с использованием представлений на основе классов?
Я просмотрел ссылки и темы на основе представления документации 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, {})
Ответы
Ответ 1
Вам нужно определить get_template_names, который возвращает список template_names.
from django.views.generic import TemplateView
class DynamicTemplateView(TemplateView):
def get_template_names(self):
return ['%s.html' % self.kwargs['template']]