Python sqlalchemy.exc.ArgumentError:对象类别tb(';23';,';cat1';,';cat1desc';,';0';)作为SQL文字值是不合法的

Python sqlalchemy.exc.ArgumentError:对象类别tb(';23';,';cat1';,';cat1desc';,';0';)作为SQL文字值是不合法的,python,flask,sqlalchemy,flask-wtforms,Python,Flask,Sqlalchemy,Flask Wtforms,烧瓶初学者。我试图在每次更新时更改实例中的数字,但似乎不起作用 这是我的密码 if form.validate\u on\u submit(): getcat=category\u tb.query.filter\u by(cat\u name=form.cat\u name.data).first() getcat.currentnum=getcat.currentnum+1 mynum=getcat.currentnum mycode=getcat.cat\u id itemcode=myc

烧瓶初学者。我试图在每次更新时更改实例中的数字,但似乎不起作用

这是我的密码

if form.validate\u on\u submit():
getcat=category\u tb.query.filter\u by(cat\u name=form.cat\u name.data).first()
getcat.currentnum=getcat.currentnum+1
mynum=getcat.currentnum
mycode=getcat.cat\u id
itemcode=mycode+'-'+mynum
添加=主项目tb(项目名称=form.cat\u name.data,项目id=项目代码,cat\u id=mycode)
db.session.commit()
flash(“新项目已添加到系统!”,“成功”)
返回重定向(url_for('items.html'))
对于每个添加的项目,代码应该自动增加,就像每次添加新项目时代码项目应该有不同的编号一样

对于表单,我在这里似乎找不到任何错误:

class newitemForm(FlaskForm):

    def getcat():
        return category_tb.query

    item_name   = StringField('Item Name', validators=[DataRequired(), Length(min=3, max=20)])
    cat_name      = QuerySelectField('Category', validators=[DataRequired()], default='1', query_factory=getcat, get_label='cat_name')
    hd_unit     = StringField('Head Unit', validators=[DataRequired(), Length(min=3, max=8)])
    sub_unit    = StringField('Sub-Unit', validators=[DataRequired(), Length(min=3, max=8)])
    hd_qty      = IntegerField('Head Qty', validators=[DataRequired()])
    sub_qty     = IntegerField('Sub Qty', validators=[DataRequired()])
    submit      = SubmitField('Submit') 

    def validate_item_name(self, item_name):
        
        pid = master_item_tb.query.filter_by(item_name=item_name.data).first()
        if pid:
            raise ValidationError('Item Already Existed, Please Select Another Name')
我很确定问题在路上,但我似乎找不到任何问题。我一直在 这个错误

sqlalchemy.exc.ArgumentError:对象类别_tb('23','cat1','cat1desc','0')作为SQL文字值是不合法的

您忘记添加要提交的对象,表中没有任何更改

将该部分修改为:

    added = master_item_tb(item_name=form.cat_name.data, item_id=itemcode, cat_id=mycode)
    db.session(added)
    db.session.commit()

我忘了添加另一个东西,即db.session.add(),但这不是主要问题
    added = master_item_tb(item_name=form.cat_name.data, item_id=itemcode, cat_id=mycode)
    db.session(added)
    db.session.commit()