2017-02-01 5 views
0

Я следил за этим руководством о том, как создать систему аутентификации пользователя на колбе, которой этого не хватает, используя штурм и этот урок (https://stormpath.com/blog/build-a-flask-app-in-30-minutes); после попытки его и чувствуя содержание с ней я пытался смотреть в благоприятную регистрацию, установивСтраница регистрации флагов-штурмастов дает странную ошибку

app.config['STORMPATH_ENABLE_REGISTRATION'] = False 

Истину в flaskr.py файл; позволяя страницу регистрации на stormpath по умолчанию, но на подключение к локальному/регистрации дает мне эту длинную ошибку я не могу сделать головы или хвосты:

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

При запуске в StackTrace 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 является частью опоки-ВТФ, и вы вряд ли изменили его (я надеюсь!), Продолжайте идти вверх:

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 

Вот более вероятным кандидатом: RegistrationForm(config=current_app.config) на линии 39 из views.py вызывается неправильно или каким-то образом WTForms не ожидали. Вероятно, это config=current_app.config.

Если возможно, импортируйте переменные из конфигурации вашего приложения из формы s .py и сделайте конфигурацию формы там, прежде чем использовать ее в views.py.

0

Ошибка возникает из-за использования версии Flask-WTF версии 0.14 или выше (некоторые изменения были внесены в эту версию, которые несовместимы с предыдущей версией). Это объясняет, почему StackTrace упоминает 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 

Проблема была решена в develop ветви stormpath-колбы, но еще не был выпущен. Если вы не можете дождаться официального релиза, ознакомьтесь с подробными изменениями in this pull request. Чтобы устранить проблему, просто выполните в вашей локальной установке флажков-штормовых путей изменения, указанные в flask_stormpath/forms.py в запросе на вытягивание.

Так что в вашем случае, вы бы:

  1. cd в вас C:\Python35-32\lib\site-packages\flask_stormpath каталога (мы знаем, что это основано на StackTrace вы получили).

  2. forms.py Открыть и сделать изменения, указанные в запросе тяговой связаны выше

См here для обсуждения по данной теме.