我正试图从 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”。