2016-04-02 16 views
-1

私はWTFormからform.consumer_key.dataを使ってデータを渡そうとしていますが、私は2つの引数を渡しているという引数を受け取ります。私は間違って何をしていますか?Flask関数は1つの引数2をとります

ここに私のエラーが

File "/Users/Gaby/Documents/Code/Twitty/app/views.py", line 18, in authenticate 

ここで私は、ファイルをパスしようとしている私のルート

auth = TwitterAuth() 

@app.route('/') 
@app.route('/authenticate', methods=['GET', 'POST']) 
def authenticate(): 
    form = TwitterAuthForm() 

    if form.validate_on_submit(): 

     #this is where my error is happening 
     auth.set_consumer_key(form.consumer_key.data) 
     auth.set_consumer_secret(form.consumer_secret.data) 
     auth.set_access_token(form.access_token.data) 
     auth.set_access_secret(form.access_secret.data) 
     return redirect('/index.html') 

return render_template('authenticate.html', 
     title='Sign In', 
     form=form) 

マイTwitterAuth()の実装は、単にgetterとsetter

class TwitterAuth(): 
     consumer_key = "" 
     consumer_secret = "" 
     access_token = "" 
     access_secret = "" 

     def set_consumer_key(ck): 
       consumer_key = ck 

     def set_consumer_secret(cs): 
       consumer_secret = cs 

     def set_access_token(at): 
       access_token = at 

     def set_access_secret(access_sec): 
       access_secret = access_sec 

     def get_consumer_key(): 
       return consumer_key 

     def get_consumer_secret(): 
       return consumer_secret 

     def get_access_token(): 
       return access_token 

     def get_access_secret(): 
       return access_secret 
+0

エラーメッセージがクリップされます。エラーメッセージ全体を貼り付けてください。 – szym

+0

'auth.consumer_key = form.consumer_key.data'を試してみるとどうなりますか? Pythonでセッターメソッドを使う必要はありません –

答えて

1

ありますTwitterAuthクラスのどのメソッドもselfパラメータを持たないため、エラーが発生しますまたは。

Pythonでは、すべてのインスタンスメソッドは、最初のパラメータとしてselfである必要があります。

(実際には何でも呼び出せますが、selfは従来の名前です。他の名前は使用されません)。

EDIT:

また、それ以外の場合は、あなたがより多くのエラーが発生します、あなたのgetterメソッドとsetterメソッドであなたがself.attribute_nameを返す必要がありますし、あなたがTwitterAuthインスタンスの属性の値を戻し、設定されているように、self.attribute_nameに割り当てます。

+0

インスタンス変数が必要ないように見えるので、クラスメソッドに変更することもできます –

+0

@ cricket_007 OPはおそらくメソッドのインスタンス変数を設定しようとしているので、 'self.attr_name'に代入することを無視しています - それ以外の代入は無意味です。 – snakecharmerb

+0

ええ、私はクラス変数を読んでいましたが、あなたはまだ自己が必要です。私はpythonicアプローチは、彼らが大部分が不必要なのでゲッターとセッターを使用しないと思う。 –

関連する問題