2010-06-05 3 views
3
from wtforms import Form, BooleanField, TextField, validators,PasswordField 
class LoginForm(Form): 
    username  = TextField('Username', [validators.Length(min=4, max=25)]) 
    password = PasswordField('Password') 

이 같은 웹 애플리케이션 (GAE)에 LoginForm을 사용할 때WTForms 오류 : 오류 : formdata가 있어야 할 multidict 형 래퍼

def post(self): 
    form=LoginForm(self.request) 

하지만 에러 보여

Traceback (most recent call last): 
    File "D:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 513, in __call__ 
    handler.post(*groups) 
    File "D:\zjm_code\forum_blog_gae\main.py", line 189, in post 
    form=LoginForm(self.request) 
    File "D:\zjm_code\forum_blog_gae\wtforms\form.py", line 161, in __call__ 
    return type.__call__(cls, *args, **kwargs) 
    File "D:\zjm_code\forum_blog_gae\wtforms\form.py", line 214, in __init__ 
    self.process(formdata, obj, **kwargs) 
    File "D:\zjm_code\forum_blog_gae\wtforms\form.py", line 85, in process 
    raise TypeError("formdata should be a multidict-type wrapper that supports the 'getlist' method") 
TypeError: formdata should be a multidict-type wrapper that supports the 'getlist' method 

을 실행하는 방법

감사합니다.

답변

7

self.request.form (전체 요청이 아닌 실제 양식 필드)을 전달해야합니다.

+1

(향후 방문자 용) 이제는 'self.request.form'입니다. – davcs86