【发布时间】:2014-02-11 11:23:26
【问题描述】:
我在下面收到此错误,有人可以帮忙吗?如果这还不够信息,请告诉我。我有一个forms.py,addcontact模板,下面来自app.py。
反馈错误:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/rob/webappan2/addressbook/app.py", line 63, in contact_add
,[request.form['mobile']],[request.form['work_location']])
File "/usr/share/pyshared/sqlalchemy/orm/scoping.py", line 113, in do
return getattr(self.registry(), name)(*args, **kwargs)
TypeError: add_all() takes exactly 2 arguments (6 given)
我的方法
@app.route('/addcontact/', methods=['GET','POST'])
def contact_add():
form = ContactsForm()
if request.method == 'POST':
if form.validate() == False:
flash('All fields are required.')
else:
db.session.add_all(request.form['surname'],request.form['firstname'],request.form['email']\
,request.form['mobile'],request.form['work_location'])
db.session.commit()
flash("Contact added successfully.")
return redirect(url_for("contact_list"))
elif request.method == 'GET':
return render_template('addcontact.html', title = 'Add Contact',form = form)
这是我的联系方式:
class Contact(db.Model):
id = db.Column(db.Integer, primary_key = True)
surname = db.Column(db.String(100))
firstname = db.Column(db.String(100))
email = db.Column(db.String(100))
mobile = db.Column(db.String(20))
work_location = db.Column(db.String(100))
#user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
def __init__(self,surname,firstname,email,mobile,work_location):
self.surname = surname
self.firstname = firstname
self.email = email
self.mobile = mobile
self.work_location = work_location
def __repr__(self):
return '<Post %r>' % (self.surname)
如果我的联系表:
class ContactsForm(Form):
surname = fields.TextField(validators=[validators.required()])
firstname = fields.TextField(validators=[validators.required()])
email = fields.TextField(validators=[validators.required()])
mobile = fields.TextField(validators=[validators.required()])
work_location = fields.TextField(validators=[validators.required()])
【问题讨论】:
-
你有
Contact模特吗? -
session.add_all()采用模型实例,而不是普通字段,并作为 一个列表。大概ContactsForm与该模型相关联? -
我已经添加了我的联系方式和表格
-
如果我做了contacts = [request.form['surname'],request.form['firstname'],request.form['email'],request.form['mobile'], request.form['work_location']]
-
然后 session.add_all(contacts) 出现另一个错误
标签: python sqlalchemy flask flask-wtforms