Flask-WTF

157 views
Skip to first unread message

Евгений Лошинский

unread,
Dec 12, 2012, 8:23:43 PM12/12/12
to flask-...@googlegroups.com
Всем добрый день. 
Есть простой в доску код, и со странным поведением. И так привожу пример, есть вид наследуемый от MethodViews

from flask.views import MethodView
from flask import render_template
from widgets import InFormWidget

class Controller(MethodView):

    def get(self):
        return render_template('base.html', title = 'AQuarium', form = InFormWidget())

    def post(self):
        return 'I post'

Форма собственно проста до безобразия:
 
from flask.ext.wtf import Form, TextField, PasswordField, Required

class InFormWidget(Form):

    email = TextField('email', validators=[Required()])
    passw = PasswordField('passw', validators=[Required()])

    def __init__(self, email, passw):
        self.email = email
        self.passw = passw
        Form.__init__(self)

Так вод итересует меня строка выделенная красным из первого листинга (return render_template('base.html', title = 'AQuarium', form = InFormWidget())), убераем из нее все что связанно с form, т.е приводим к виду:
return render_template('base.html', title = 'AQuarium')
И все работает отлично шаблон отображется как надо, но если оставить форму на месте то получаем 500ую ошибку Internal Server Error. 
Отладчик включен реакции нуль, подскажите что не так? Возможно я упускаю какой либо важный момент?

P.S: приложение содержащие форму включается через DispatchingMiddleware следующим ниже образом:

from flask import  Flask

from werkzeug.wsgi import DispatcherMiddleware

from private import private_app


application = Flask(__name__)

application.config.from_object('aqua_conf.Development')


@application.route('/')

def root_public():

    return '[+] Im public iterface.'


application.wsgi_app = DispatcherMiddleware(application.wsgi_app,

    {

        '/private': private_app,

     }

)

if __name__=="__main__":    application.run()

.

Anton Yanchenko

unread,
Dec 13, 2012, 7:24:58 AM12/13/12
to flask-...@googlegroups.com
13 декабря 2012 г., 5:23 пользователь Евгений Лошинский
<enla...@gmail.com> написал:

> return render_template('base.html', title = 'AQuarium', form =
> InFormWidget())
В кноструктор ничего не передаётся.

> class InFormWidget(Form):
> def __init__(self, email, passw):
email и passw обязатедльные аргументы.

> Form.__init__(self)
У вас действительно old-style класс? Если нет, то заменить на
super(InFormWidget, self).__init__()


--
Thanks,
Anton Yanchenko

Reply all
Reply to author
Forward
0 new messages