在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ flask-sqlalchemy 添加與刪除數(shù)據(jù)異常

flask-sqlalchemy 添加與刪除數(shù)據(jù)異常

數(shù)據(jù)添加和刪除操作使用ajax提交的,頁面都不會執(zhí)行刷新操作。

添加:
在添加數(shù)據(jù)的時候,第一次添加沒有問題,第二次在操作添加數(shù)據(jù)的時候,數(shù)據(jù)會出現(xiàn)重復(fù)添加的情況

刪除:

刪除數(shù)據(jù)時候第一次操作沒問題,第二次操作就出現(xiàn)一下錯誤:

UnmappedInstanceError: Class '__builtin__.NoneType' is not mapped

@main.route('/hostgroup/edit',methods=['GET','POST'])
def edit():
    if request.method == 'POST':
        groupid = request.form.get('id')
        listid = request.form.getlist('groupip')
        assets = request.form.getlist('assets')
        if listid:
            for i in listid:
                addids = Grouphostid(groupid=groupid,hostid=i)
                db.session.add(addids)
        elif assets:
            for dell in assets:
                dell_hostid = Grouphostid.query.filter_by(groupid = groupid,hostid = dell).first()
                db.session.delete(dell_hostid)
        db.session.commit()
        db.session.close()
回答
編輯回答
凹凸曼

不管是添加還是刪除,都進(jìn)行一下數(shù)據(jù)是否存在的判斷。

2017年7月18日 11:30
編輯回答
陪我終

你添加中出現(xiàn)的問題沒有看懂。

刪除中出現(xiàn)的問題可能和你添加中出現(xiàn)的問題相關(guān),當(dāng)執(zhí)行
db.session.delete(None)
時,會報你那個錯誤,所以最好確認(rèn)下你是否添加成功,在執(zhí)行刪除操作吧。

dell_hostid = Grouphostid.query.filter_by(groupid = groupid,hostid = dell).first()
if dell_hostid:
  db.session.delete(dell_hostid)
2018年4月8日 04:11
編輯回答
近義詞

for gp in Grouphostid.query.filter_by(groupid = groupid)\
    .filter(Grouphostid.hostid.in_(assets)).all(): # 先過濾出來
    db.session.delete(gp) # 有實例存在,再刪除
                
2018年3月9日 00:43