文章内容
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
评论列表