python - SQLAlchemy class __init__() meets takes at least 5 non-keyword arguments error -


i wrote code

user class sqlalcemy

##############models.py class user(base,usermixin):     __tablename__ = 'users'     id = column(integer, sequence('seq_user_id'), primary_key=true)     name = column(string(50), unique=true, index = true, nullable = false)     email = column(string(120), unique=true, index = true, nullable = false)     password = column(string(128), nullable = false)     registerdate = column(date, nullable = false)      def __init__(self, name, email, password, registerdate):         self.name = name         self.email = email         self.password = password         self.registerdate = datetime.datetime.now()      def __repr__(self):         return '<user %r>' % (self.name)      def is_authenticated(self):         return true      def is_active(self):         return true      def is_anonymous(self):         return false      def get_id(self):         return unicode(self.id) 

then wrote code create test user

############## frontend.py @app.route('/createuser') def createuser():     user_jacky = user(name='jacky',email='jacky@test.com',password=md5.new('123').hexdigest())     db_session.add(user_jacky)     db_session.commit()     return redirect(url_for('index')) 

when access http://test.com/createuser, system told me "typeerror: init() takes @ least 5 non-keyword arguments (4 given)". read document of sqlalchemy again, that's same code, not need pass value self. happend?

the problem __init__ expects pass in registerdate, aren't providing 1 when __init__ called through line:

user(name='jacky',email='jacky@test.com',password=md5.new('123').hexdigest()) 

if registerdate should now(), can leave out parameter:

def __init__(self, name, email, password):     self.name = name     self.email = email     self.password = password     self.registerdate = datetime.datetime.now() 

if want able provide registerdate, should default now(), can this:

def __init__(self, name, email, password, registerdate=none):     self.name = name     self.email = email     self.password = password     self.registerdate = registerdate or datetime.datetime.now() 

Comments

Popular posts from this blog

java - activate/deactivate sonar maven plugin by profile? -

python - TypeError: can only concatenate tuple (not "float") to tuple -

java - What is the difference between String. and String.this. ? -