2013-03-16 13 views
11

Django belgelerinin (Django 1.4) sınıf temelli görünümlerinin ref ve konularını araştırdım, ancak bundan bahsetmedim. Şablon adlarını sınıf tabanlı görünümler kullanarak dinamik olarak nasıl belirlerim? aşağıdaki kurulum ait sınıf temelli eşdeğer arıyorum:Şablon adları sınıf tabanlı görünümler kullanılarak dinamik olarak nasıl ayarlanmalıdır?

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, {}) 
Sen tanımlamanız gerekir

cevap

25

template_names listesini döndüren 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)" sınıfı yerine "DynamixTemplateView (TemplateView) sınıfı" demek istiyorum. – Bentley4

+0

Evet, demek istediğim sınıf :) –

+0

Btw, 'return [self.kwargs [' template ']] yerine ['% s.html '% self.kwargs [' template ']] 'döndürmek zorundaydım 'url'de html sonekini yazmamak için. Sınıf tabanlı görünümler, çirkin imo'ya benziyor. – Bentley4

İlgili konular