python - SQLAlchemy 错误绑定参数 2 - 可能不受支持的类型
问题描述
当尝试更新我的 sqlite 数据库上的数据时,我收到此错误,我相信这是因为数据类型不匹配,但我无法通过在我的代码中切换数据类型来修复它。
正在更新的表格:
__tablename__ = 'games'
ID = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Text, unique=True)
dateadded = db.Column(db.Text)#Date)
useradded = db.Column(db.ForeignKey('userinfo.username'))
description = db.Column(db.Text, unique=True)
datepublished = db.Column(db.Text)#Date)
publisher = db.Column(db.ForeignKey('publishers.publishername'))
developer = db.Column(db.ForeignKey('developers.developername'))
developer1 = db.relationship('Developer', primaryjoin='Game.developer == Developer.developername', backref='games')
publisher1 = db.relationship('Publisher', primaryjoin='Game.publisher == Publisher.publishername', backref='games')
userinfo = db.relationship('Userinfo', primaryjoin='Game.useradded == Userinfo.username', backref='games')
更新它的功能:
def creategame():
user=current_user()
if user:
new_game = Game()
#new_publisher = Publisher()
#new_developer = Developer()
new_game.name = request.form.get('gamename')
current_date = date.today()#datetime.now().date()
new_game.dateadded = str(current_date.strftime('%m-%d-%Y'))
new_game.useradded = current_user()
new_game.description = request.form.get('description')
new_game.datepublished = str(request.form.get('datepublished'))
new_game.publisher = request.form.get('publisher')
#new_publisher.publishername == new_game.publisher
new_game.developer = request.form.get('developer')
#new_developer.developername == new_game.developer
print(new_game.name, new_game.dateadded, new_game.useradded, new_game.description, new_game.datepublished,
new_game.publisher, new_game.developer) # debug
if request.form.get('gamename'):
print(new_game.name, new_game.dateadded, new_game.useradded, new_game.description, new_game.datepublished,
new_game.publisher, new_game.developer) # debug
print("here the second") # debug
#db.session.add(new_developer)
#db.session.commit()
#db.session.add(new_publisher)
#db.session.commit()
db.session.add(new_game)
db.session.commit() # this probably isnt working because of publisher & developer being foreign keys, need to figure out how to get around this
return redirect(request.form.get('from', '/'))
错误信息:
sqlalchemy.exc.InterfaceError: (sqlite3.InterfaceError) Error binding parameter 2 - probably unsupported type.
[SQL: INSERT INTO games (name, dateadded, useradded, description, datepublished, publisher, developer) VALUES (?, ?, ?, ?, ?, ?, ?)]
[parameters: ('aa', '10-24-2020', <Userinfo 4>, 'afh', '2020-09-29', 'afhj', 'ADDG')]
(Background on this error at: http://sqlalche.me/e/rvf5)
解决方案
推荐阅读
- c# - C++ DLL 的函数不在 WPF 中输出文本
- python - 是否可以使用遗传算法随机限制变量数量?
- javascript - 如果是对象,如何检查空值并替换它?
- r - 在 tibble 中寻求变异的帮助
- kendo-ui - 如果 Kendo Grid 中一个单元格的验证失败,如何允许编辑其他单元格?
- sql-server - SSRS:显示数据库中 varbinary 列的图像
- wordpress - Colormag wp 主题页脚自定义
- javascript - 我正在尝试从数组中获取图像以使用 Vue.js 显示。我是在犯语法错误还是错过了什么?
- vue.js - 如何访问包装器 Highcharts vue 的方法?
- javascript - 从反应私有路由中的axios调用返回true或false