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()