python - TypeError: 'Required' object is not iterable Flask WTF Forms -


i following http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982 tutorial develop own application.

i tried create signupform encountered error:

typeerror: 'required' object not iterable  

my routes page is

from cafe_klatch import app flask import render_template,request,flash forms import contactform, signupform models import db   @app.route('/') @app.route('/index')  def index():     return render_template('index.html')  @app.route('/contact', methods = ['get','post'])  def contact():     form1 = contactform()      if request.method == 'post':         if form.validate() == false:             flash('all fields required.')             return render_template('contact.html',form = form)         else:             return 'form posted.'         elif request.method == 'get':         return render_template('contact.html',form = form)     @app.route('/signup', methods =['get','post'])  def signup():     form = signupform()       if request.method == 'post':         if form.validate() == false:             return render_template('signup.html',form = form)         else:             return "[1] create new user [2] sign in user [3] redirect user's profile"       elif request.method == 'get':         return render_template('signup.html',form = form)          

this models.py code

from flask.ext.sqlalchemy import sqlalchemy werkzeug import generate_password_hash, check_password_hash  db = sqlalchemy()  class user(db.model):     __tablename__ = 'users'     id = db.column(db.integer, primary_key = true)     userid = db.column(db.string(30), unique = true)     email = db.column(db.string(100), unique = true)     pwdhash = db.column(db.string(100))     birthdate = db.column(db.datetime)     zipcode = db.column(db.integer)     country = db.column(db.string(100))      def __init__(self,userid,email,password,birthdate,zipcode,country):         self.userid = userid.title()         self.email = email.lower()         self.set_password(password)         self.birthdate = birthdate         self.zipcode = zipcode         self.country = country      def __repr__(self):             return '<user %r>' % self.username          def set_password(self,password):         self.pwdhash = generate_password_hash(password)      def check_password(self,password):         return check_password(self.pwdhash, password)             

this forms.py code

from flask.ext.wtf import form wtforms import textfield, textareafield, submitfield, integerfield, validators, validationerror,passwordfield, datefield models import db, user  class contactform(form):   name = textfield("name",  [validators.required("please enter name.")])   email = textfield("email",  [validators.required("please enter email address."), validators.email("please enter email address.")])   subject = textfield("subject",  [validators.required("please enter subject.")])   message = textareafield("message",  [validators.required("please enter message.")])   submit = submitfield("send")  class signupform(form):     userid = textfield("userid", [validators.required("please enter user id")])     email = textfield("email", [validators.required("please enter email address."), validators.email("please enter email address.")])     password = passwordfield('password', [validators.required("please enter password.")])     birthdate = datefield("birthdate",validators.required("please enter birthdate"))     zipcode =  integerfield("zipcode",[validators.required("please enter zipcode")])     country = textfield("country", [validators.required("please enter country")])     submit = submitfield("create account")      def __init__(self, *args, **kwargs):         form.__init__(self, *args, **kwargs)      def validate(self):         if not form.validate(self):             return false          user = user.query.filter_by(email = self.email.data.lower()).first()         if user:           self.email.errors.append("that email taken")           return false         else:           return true     

can 1 explain error is?

you supposed pass list of validators, missing [ ... ] in declaration of birthdate field in signupform. should read:

birthdate = datefield("birthdate",     [validators.required("please enter birthdate")]) 

Comments

Popular posts from this blog

visual studio - vb.net filter binding source by time -

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -