2017-01-14 5 views
0

同じAPIを書き直さないためです。私は既に作成されたメソッドから継承したいMethodViewを無視します。login_requiredデコレータを無視します。私は/dostuffbにGET要求を行う場合は、フラスコを継承する方法デコレータのないMethodViewクラス?

  1. それが認証される

    class DoStuffA(MethodView): 
        decorators = [login_required] 
        def get(self): 
         return jsonify({"status":"ok"}) 
    
    api.add_url_rule('/dostufa', view_func=DoStuffA.as_view("dostuffa"), methods=['GET']) 
    
    class DoStuffB(DoStuffA): 
        pass 
    
    api.add_url_rule('/dostuffb', view_func=DoStuffB.as_view("dostuffb"), methods=['GET']) 
    

    必要がありますか?

  2. 私の継承構文は正しいですか?

答えて

2

View.decoratorsリストはView.as_view()メソッドが呼び出されたときにのみ適用されます。あなたが任意のデコレーターがあなたのサブクラスに適用したくない場合は、単に空のシーケンスで属性をオーバーライドします。

class DoStuffB(DoStuffA): 
    decorators =() # empty tuple 

DoStuffB.as_view()ではなく、継承されたDoStuffA.decoratorsリストよりも空のタプルを見つけるだろう、と何のデコレータが適用されません。

+0

が処理されました。ありがとうございました –

関連する問題