我在视图函数中调用了模型中的一个静态方法:
@staticmethod
def getDots(pid='0', result=[]):
current = Dot.query.filter_by(pid = pid).all()
for v in current:
result.append(v)
Dot.getDots(v.id, result)
return list(result)
视图函数:
@dot.route('/list', methods=['post', 'get'])
@login_required
def list():
dots = Dot.getDots()
return render_template('dot/list.html', dots=dots)
第一次进入的时候数据都是正确的,如果再刷新一次就出现报错:
不知道为什么,第一次总是可以的,就是不能刷新
我的理解是,你在你的
Dot
类中定义了一个即是静态函数又是递归函数的getDots()
。这里涉及到你的递归问题。出现以上错误的原因是因为:session 已经被提交,导致操作的 model 对象已经不在当前 session 中了。
使用下面的方法解决一下试试。
或者你改变一下你的递归方法。