问题:
peewee 的 .count 方法是必须要加参数的,不加参数就会翻译成 count() ,是非法的 SQL
SQL 的 count 必须加 * 或者具体的字段
而 peewee 的 count 方法直接加 .count('') 是不行的,会被翻译成 count(''),也是非法的 SQL
合法的 SQL 是 count(*)
解决办法
回到问题「peewee 怎么实现 count(*) 」问了 3 个 ai: chatgpt、deepseek v3、gemini2 都回答不对
最后自己去 github 的 issue 里面翻了一下,作者给出了方法
就是用 peewee 的 SQL 函数,如下面这样 ⬇️
from peewee import SQL
Model.select(Model.count(SQL('*'))
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。