2016-10-31 5 views
0

views.pyDjango:Generic Viewでself.xxxに変数を保存できませんか?

class MyView(View): 

    def get(self, request, *args, **kwargs): 
     self.foo = "hi"  

    def post(self, request, *args, **kwargs): 
     print(self.foo) 

GET要求作品が、POST要求は動作しません。

それはエラーが発生し、 AttributeError: 'MyView' object has no attribute 'foo'

私はviews.pyself.xxxに変数を保存することができませんか?

+1

@Sayse:あなたがセッションを使用する必要が要求間のいくつかの値を維持するために

。それは単なる例です! – user3595632

答えて

1

get & post方法が独立して作業しているとDjangoはあなたの最初の実行GET要求MyViewクラスのインスタンスが作成される、fooに値が割り当てられ、要求が完了した後にするときつまり、リクエストごとに新しいMyViewインスタンスを作成します - MyViewを破壊される。 POSTをリクエストすると、MyViewの新しいインスタンスが再度作成され、それ以上の属性はfooになりません。 、それは動作しませんもちろんの

class MyView(View): 

    def get(self, request, *args, **kwargs): 
     request.session['foo'] = "hi" 

    def post(self, request, *args, **kwargs): 
     print(request.session.get('foo', "default value")) 
関連する問題