大家好,我的专栏有一个数组属性,还有一个Bigint类型
statistics = ArrayField(BigIntegerField, default=[0, 0, 0, 0, 0, 0])
在文档中,我查看了如何发送更新请求的示例:
PageView = Table('page_views')
query = (PageView
.update({PageView.c.page_views: PageView.c.page_views + 1})
.where(PageView.c.url == url))
query.execute(database)
我的尝试:
await db.execute(MarriagePlayer.update({
MarriagePlayer.statistics[0]: MarriagePlayer.statistics[0] + 1
}).where(
MarriagePlayer.chat_id == msg.receiver_id,
MarriagePlayer.user_id << [msg.sender_id, p.loved]))
但我收到一个错误:
婚姻播放器.statistics[0]:婚姻播放器.statistics[0] + 1
TypeError:不可散列的类型:'ObjectSlice'
问题:如何在避免此错误的同时正确更新我需要的数组?
缺少一个不允许将部分表达式用作 dict 键的方法实现。这现在已在 master 中修复:
https://github.com/coleifer/peewee/commit/7eb7498018b4265ce7e79c3e2b0b90a93d622d45
该修复将包含在下一个版本中。