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 }
したがって、2 つの子クラスの違いは、使用するテンプレートと返される「データ」だけです。どちらのビューも、親クラスから session_data と other_variables を返すため、すべての子クラスで「return session_data, other_variables」を繰り返すことはありません。