2017-02-01 6 views
0

このチュートリアルでは、stormpathとこのチュートリアル(https://stormpath.com/blog/build-a-flask-app-in-30-minutes)を使用してフラスコにユーザ認証システムを作成する方法について説明しました。それを試した後、それに感じの内容私はflaskr.pyファイルでTrueにFlask stormpath登録ページで奇妙なエラーが発生しました

app.config['STORMPATH_ENABLE_REGISTRATION'] = False 

を設定することで、登録の有効化を検討してみました。デフォルトのstormpath登録ページを有効にするが、登録/ localhostに接続するには、それは私に私が頭や尾のを作ることができないこの長いエラー与える:私が間違って何が起こっているのか全く見当がつかないと私はできません

Traceback (most recent call last): 
    File "C:\Python35-32\lib\site-packages\flask\app.py", line 1994, in __call__ 
return self.wsgi_app(environ, start_response) 
    File "C:\Python35-32\lib\site-packages\flask\app.py", line 1985, in wsgi_app 
response = self.handle_exception(e) 
    File "C:\Python35-32\lib\site-packages\flask\app.py", line 1540, in handle_exception 
reraise(exc_type, exc_value, tb) 
    File "C:\Python35-32\lib\site-packages\flask\_compat.py", line 33, in reraise 
raise value 
    File "C:\Python35-32\lib\site-packages\flask\app.py", line 1982, in wsgi_app 
response = self.full_dispatch_request() 
    File "C:\Python35-32\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request 
rv = self.handle_user_exception(e) 
    File "C:\Python35-32\lib\site-packages\flask\app.py", line 1517, in handle_user_exception 
reraise(exc_type, exc_value, tb) 
    File "C:\Python35-32\lib\site-packages\flask\_compat.py", line 33, in reraise 
raise value 
    File "C:\Python35-32\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request 
rv = self.dispatch_request() 
    File "C:\Python35-32\lib\site-packages\flask\app.py", line 1598, in dispatch_request 
return self.view_functions[rule.endpoint](**req.view_args) 
    File "C:\Python35-32\lib\site-packages\flask_stormpath\views.py", line 39, in register 
form = RegistrationForm(config=current_app.config) 
    File "C:\Python35-32\lib\site-packages\wtforms\form.py", line 212, in __call__ 
return type.__call__(cls, *args, **kwargs) 
    File "C:\Python35-32\lib\site-packages\flask_stormpath\forms.py", line 40, in __init__ 
**kwargs) 
    File "C:\Python35-32\lib\site-packages\flask_wtf\form.py", line 158, in __init__ 
    super(Form, self).__init__(*args, **kwargs) 
TypeError: __init__() takes from 1 to 2 positional arguments but 7 were given 

をドキュメンテーションまたは類似のエラーで何かを見つける。

答えて

0

あなたはPythonのスタックトレースに実行すると、下部に開始し、あなたの方法を動作します:

File "C:\Python35-32\lib\site-packages\flask_wtf\form.py", line 158, in __init__ 
    super(Form, self).__init__(*args, **kwargs) 
TypeError: __init__() takes from 1 to 2 positional arguments but 7 were given 

これはform.pyから関数が誤って使用されていることを示しています。 form.pyフラスコ-WTFの一部であり、あなたは(私は願っています!)、それを変更した可能性は低いです、上がり続けるので:

File "C:\Python35-32\lib\site-packages\flask_stormpath\views.py", line 39, in register 
form = RegistrationForm(config=current_app.config) 
    File "C:\Python35-32\lib\site-packages\wtforms\form.py", line 212, in __call__ 
return type.__call__(cls, *args, **kwargs) 
    File "C:\Python35-32\lib\site-packages\flask_stormpath\forms.py", line 40, in __init__ 
**kwargs) 
    File "C:\Python35-32\lib\site-packages\flask_wtf\form.py", line 158, in __init__ 
    super(Form, self).__init__(*args, **kwargs) 
TypeError: __init__() takes from 1 to 2 positional arguments but 7 were given 

ここでは、より可能性の高い候補者:views.pyのライン39上のRegistrationForm(config=current_app.config)は間違って呼ばれていますまたはWTFormsが期待していない方法で。おそらくconfig=current_app.configでしょう。

フォームの.pyからアプリケーションの設定からすべての可能な、インポート変数でとviews.pyで使用する前に、そこに自分のフォームの設定を行う場合は。

0

Flask-WTFバージョン0.14以上を使用しているためにエラーが発生します(このバージョンでは一部の変更が導入され、以前のバージョンと互換性がありません)。スタックトレースがflask_wtf言及理由を説明:

File "C:\Python35-32\lib\site-packages\flask_wtf\form.py", line 158, in __init__ 
    super(Form, self).__init__(*args, **kwargs) 
TypeError: __init__() takes from 1 to 2 positional arguments but 7 were given 

問題はstormpathフラスコのdevelopブランチで修正されていますが、まだリリースされていません。公式リリースを待つことができない場合は、in this pull requestの変更点をご覧ください。この問題を解決するには、プルリクエストでflask_stormpath/forms.pyに表示されている変更をローカルフラスコ - ストームパスのインストールで実装するだけです。

だからあなたのケースでは、あなたが希望:あなたへ

  1. cdC:\Python35-32\lib\site-packages\flask_stormpath ディレクトリ(私たちは、あなたが受け取ったスタックトレースに基づいてこれを知っています)。

  2. オープンforms.pyとトピックについての議論を参照してくださいhere

の上にリンクされ、プルリクエスト に示す変更を行います。

関連する問題