Подтвердить что ты не робот

Как динамически создавать имена шаблонов с использованием представлений на основе классов?

Я просмотрел ссылки и темы на основе представления документации 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, {})
4b9b3361

Ответ 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']]