我試圖繞過Django從1.3開始的基於類的新視圖。子類化基於Django類的視圖?
我已經做了一些閱讀:
- http://reinout.vanrees.org/weblog/2011/08/24/class-based-views-usage.html
- http://www.caktusgroup.com/blog/2011/12/29/class-based-views-django-13/
但有一件事我還沒有看到的例子,或者如何做的是,可以幾個視圖子類化一個常見的「父」類,重用這裏的數據? (請原諒我的共同命名的顛簸)
的什麼,我試圖做一個例子:
class MyParentClass(TemplateView):
def get(self, request, *args, **kwargs):
session_data = request.session
other_variables = foovars
return self.render_to_response(context)
class MyChildClassOne(TemplateView):
template_name = "template_one.htm"
def get(self,request, *args, **kwargs):
resultant_data = foodata
return {'data' : resultant_data }
class MyChildClassTwo(TemplateView):
template_name = "template_two.htm"
def get(self,request, *args, **kwargs):
other_data = foootherdata
return {'data' : other_data }
這樣兩個子類之間唯一的區別是他們使用的模板和「數據」他們回來了。兩個視圖都會返回父類的session_data和other_variables,因此不會在每個子類中重複「return session_data,other_variables」。