如何更新数据库列中的所需数组(整数)

问题描述 投票:0回答:1

欢迎大家,我有一列包含一个数组,并键入Bigint,我试图更新所需的数组,但出现错误,我该怎么办?

#My column
statistics = ArrayField(BigIntegerField, default=[0, 0, 0, 0, 0, 0])

#My try
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]))

和我的错误:

[MarriagePlayer.statistics [0]:MarriagePlayer.statistics [0] + 1

TypeError:无法散列的类型:'ObjectSlice'

python python-3.x postgresql peewee
1个回答
0
投票

[缺少一种方法实现,它阻止了切片表达式用作dict键。现在已在母版中修复:

https://github.com/coleifer/peewee/commit/7eb7498018b4265ce7e79c3e2b0b90a93d622d45

此修复程序也将包含在下一发行版中。

© www.soinside.com 2019 - 2024. All rights reserved.