私は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 }
2つのクラスの唯一の違いは、彼らが使用するテンプレートや「データ」になるように、彼らは戻る。どちらのビューでも、親クラスからsession_dataおよびother_variablesが返されるため、すべての子クラスで "return session_data、other_variables"が繰り返されません。