flask-sqlalchemy 添加与删除数据异常

数据添加和删除操作使用ajax提交的,页面都不会执行刷新操作。

添加:
在添加数据的时候,第一次添加没有问题,第二次在操作添加数据的时候,数据会出现重复添加的情况

删除:

删除数据时候第一次操作没问题,第二次操作就出现一下错误:

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()
阅读 11.6k
3 个回答

你添加中出现的问题没有看懂。

删除中出现的问题可能和你添加中出现的问题相关,当执行
db.session.delete(None)
时,会报你那个错误,所以最好确认下你是否添加成功,在执行删除操作吧。

dell_hostid = Grouphostid.query.filter_by(groupid = groupid,hostid = dell).first()
if dell_hostid:
  db.session.delete(dell_hostid)

不管是添加还是删除,都进行一下数据是否存在的判断。


for gp in Grouphostid.query.filter_by(groupid = groupid)\
    .filter(Grouphostid.hostid.in_(assets)).all(): # 先过滤出来
    db.session.delete(gp) # 有实例存在,再删除
                
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题