Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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 SAWarning:类型的对象<;儿童>;不在会话中,沿';父母子女';不会继续_Python_Sqlalchemy_Flask Sqlalchemy - Fatal编程技术网

Python SAWarning:类型的对象<;儿童>;不在会话中,沿';父母子女';不会继续

Python SAWarning:类型的对象<;儿童>;不在会话中,沿';父母子女';不会继续,python,sqlalchemy,flask-sqlalchemy,Python,Sqlalchemy,Flask Sqlalchemy,我被困在这个问题上,不知道如何解决它。这是我的models.py文件: models.py 这就是我如何向DB中添加项的方式(response参数包含一个与类匹配的dict,可以直接解包): 现在,概述表已正确填写,但步骤保持为空。检查日志时,我收到以下警告: SAWarning:类型的对象不在会话中,沿“概述.步骤”添加操作将不会继续 (orm_util.state_class_str(state),operation,prop)) 我做错了什么?好吧,我已经通过向会话中添加创建的步骤来解决这

我被困在这个问题上,不知道如何解决它。这是我的
models.py
文件:

models.py 这就是我如何向DB中添加项的方式(response参数包含一个与类匹配的dict,可以直接解包):

现在,
概述
表已正确填写,但
步骤
保持为空。检查日志时,我收到以下警告:

SAWarning:类型的对象不在会话中,沿“概述.步骤”添加操作将不会继续 (orm_util.state_class_str(state),operation,prop))


我做错了什么?

好吧,我已经通过向会话中添加创建的步骤来解决这个问题。我仍然不知道这个警告是什么意思,所以我就把它留在这里。我的解决方案:

for step in steps:
    step = Step(overview=overview, **step)  # explicitly add
    db.session.add(step)

好吧,我已经通过向会话中明确添加创建的步骤解决了这个问题。我仍然不知道这个警告是什么意思,所以我就把它留在这里。我的解决方案:

for step in steps:
    step = Step(overview=overview, **step)  # explicitly add
    db.session.add(step)
通常,当
add()
将对象添加到会话时,它们的相关对象将按照您的需要自动添加。这种行为是由关系的行为控制的

步骤中将
级联设置为
'delete'
。您可以使用
cascade='save-update,delete'
将其添加回,但请查看,并查看您可能还需要什么。一个常见的集合是“全部,删除孤立项”

记住这些都是严格意义上的ORM行为;在级联中设置
“delete”
不会设置列的[event]cascade

通常情况下,当
add()
将对象设置为会话时,它们的相关对象将按您的需要自动添加。这种行为是由关系的行为控制的

步骤中将
级联设置为
'delete'
。您可以使用
cascade='save-update,delete'
将其添加回,但请查看,并查看您可能还需要什么。一个常见的集合是“全部,删除孤立项”

记住这些都是严格意义上的ORM行为;在级联中设置
'delete'
不会在[事件]级联上设置列的

for step in steps:
    step = Step(overview=overview, **step)  # explicitly add
    db.session.add(step)