Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy对象已附加到会话,然后在刷新时DetachedInstanceError仍会添加到数据库_Python_Flask_Sqlalchemy_Flask Sqlalchemy - Fatal编程技术网

Python SQLAlchemy对象已附加到会话,然后在刷新时DetachedInstanceError仍会添加到数据库

Python SQLAlchemy对象已附加到会话,然后在刷新时DetachedInstanceError仍会添加到数据库,python,flask,sqlalchemy,flask-sqlalchemy,Python,Flask,Sqlalchemy,Flask Sqlalchemy,我在使用SQLAlchemy建立烧瓶中的多对多关系时遇到了一些问题。我有两个模型和关系表。当我创建组对象时,我希望该组将创建组的用户作为成员,并且该用户应该将创建的组作为组 但是,当我提交表单以创建组时,我得到一个InvalidRequestError,表示对象“”已附加到会话“1”(这是“2”) 然后,如果我刷新页面,重新提交表单,它将成功创建组和数据库关系。但是,它显示了一个DetachedInstanceError,表示父实例未绑定到会话;属性“组”的延迟加载操作无法继续。在我重新启动服务

我在使用SQLAlchemy建立烧瓶中的多对多关系时遇到了一些问题。我有两个模型和关系表。当我创建
对象时,我希望该组将创建组的用户作为成员,并且该用户应该将创建的组作为组

但是,当我提交表单以创建组时,我得到一个
InvalidRequestError
,表示
对象“”已附加到会话“1”(这是“2”)

然后,如果我刷新页面,重新提交表单,它将成功创建组和数据库关系。但是,它显示了一个
DetachedInstanceError
,表示父实例未绑定到会话;属性“组”的延迟加载操作无法继续。在我重新启动服务器之前,将显示该错误

相关代码:

db:

型号:

groups = db.Table('user_groups',
    db.Column('group_id', db.Integer, db.ForeignKey('groups.id')),
    db.Column('user_id', db.Integer, db.ForeignKey('users.id'))
)

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)

    groups = db.relationship('Group', secondary=groups,
        backref=db.backref('members', lazy='dynamic'))


class Group(db.Model):
    __tablename__ = 'groups'
    id = db.Column(db.Integer, primary_key=True)
正在尝试将组添加到数据库:

g = Group()
db.session.add(g)        
u = User.query.filter_by(googleID=session.get('id')).first()
g.members.append(u)
db.session.commit()

感谢您的帮助

所以我把它修好了。。。问题是我正在将数据库变量(db)导入到我的模型文件中。显然这是个禁忌,所以我只是把它复制/粘贴到主文件中

g = Group()
db.session.add(g)        
u = User.query.filter_by(googleID=session.get('id')).first()
g.members.append(u)
db.session.commit()