Python sqlalchemy.exc.interface错误:<;无法打印的接口错误对象>;/查询数据库时,将单独的变量分配给列表时出错
对于我的web应用程序,我使用以下代码将一些变量注入基本/所有模板:Python sqlalchemy.exc.interface错误:<;无法打印的接口错误对象>;/查询数据库时,将单独的变量分配给列表时出错,python,flask,sqlalchemy,Python,Flask,Sqlalchemy,对于我的web应用程序,我使用以下代码将一些变量注入基本/所有模板: @app.context_processor def inject_into_base(): # If user is not logged in if not current_user.is_authenticated: # Set count to none count = None role = None # Else Count is set t
@app.context_processor
def inject_into_base():
# If user is not logged in
if not current_user.is_authenticated:
# Set count to none
count = None
role = None
# Else Count is set to the number of unread messages
else:
count = db.session.query(message).filter(message.user_id_to == current_user.user_id).filter(message.status == False).count()
role = db.session.query(user_society_role.role_id).filter_by(user_id=current_user.user_id).order_by(user_society_role.role_id.desc()).first().role_id
return dict(count=count, role=role)
一切都很好,直到我到达包含线路的特定路线:
Survey.q9 = Survey.q9.split(',')
它只是将字符串拆分为一个列表。结果是
sqlalchemy.exc.InterfaceError: <unprintable InterfaceError object>
sqlalchemy.exc.interface错误:
如果我硬编码在inject_into_base中找到的两个db.session.query,它将正常运行,如果我注释掉路由中的.split(','),它也正常工作
我还发现,将任何东西分配给Survey.q9都会破坏我的应用程序,并且只在这一条特定路线上
非常感谢您的帮助,这是我第一次在这里提问,所以请对我放松:)修复了我的问题,结果发现sqlalchemy的
autoflush
功能破坏了我的应用程序,我所要做的就是将db=sqlalchemy(应用程序,会话选项={“autoflush”:False})
添加到我的\u init\uuuuuuuy.py