文章内容
2018/8/6 15:02:51,作 者: 黄兵
TypeError: filter() got an unexpected keyword argument 'classification_id'
在使用Flask的时候,使用SQLAlchemy查询报如下错误:
builtins.TypeError
TypeError: filter() got an unexpected keyword argument 'classification_id'
出错原因:
查询错误,应该使用filter_by,却使用了filter。
filter_by():把等值过滤器添加到原查询上,返回一个新查询;
filter():把过滤器添加到原查询上,返回一个新查询。
在这里使用错误。源代码如下:
@manage.route('/admin_add_catalog', methods=['GET', 'POST'])
@login_required
@admin_required
def admin_add_catalog():
# 获取当前用户id
user_id = current_user.id
# 页面信息
user_info = User.query.get_or_404(user_id)
title = '首 页'
page_name = 'Dashboard'
page_features = 'dashboard & statistics'
form = AddClassificationCatalogForm()
if form.validate_on_submit():
get_classification_id = MaterialClassification.query.filter(classification_name=form.Catalog_to_Classification.data).first().id
print(get_classification_id)
if get_classification_id is None:
flash(u'保存失败', 'error')
classification_catalog = ClassificationCatalog(catalog_name=form.ClassificationCatalog_name.data,
classification_id=get_classification_id)
db.session.add(classification_catalog)
db.session.commit()
flash(u'增加成功', 'success')
return render_template('manage/admin_add_catalog.html', user_info=user_info, name=title,
pageName=page_name, description=page_name, pageFeatures=page_features, form=form)解决方案:
修改源代码:
@manage.route('/admin_add_catalog', methods=['GET', 'POST'])
@login_required
@admin_required
def admin_add_catalog():
# 获取当前用户id
user_id = current_user.id
# 页面信息
user_info = User.query.get_or_404(user_id)
title = '首 页'
page_name = 'Dashboard'
page_features = 'dashboard & statistics'
form = AddClassificationCatalogForm()
if form.validate_on_submit():
get_classification_id = MaterialClassification.query.filter_by(classification_name=form.Catalog_to_Classification.data).first().id
print(get_classification_id)
if get_classification_id is None:
flash(u'保存失败', 'error')
classification_catalog = ClassificationCatalog(catalog_name=form.ClassificationCatalog_name.data,
classification_id=get_classification_id)
db.session.add(classification_catalog)
db.session.commit()
flash(u'增加成功', 'success')
return render_template('manage/admin_add_catalog.html', user_info=user_info, name=title,
pageName=page_name, description=page_name, pageFeatures=page_features, form=form)黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - TypeError: filter() got an unexpected keyword argument 'classification_id'
最近北极圈内出现 30 度罕见高温,究竟是谁在「焖烧」地球?
sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1062
sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1062
评论列表