peewee 解释 where 子句中的条件

peewee interpretes conditions in where clause

我正在尝试在我的项目中实施 peewee ORM,但我遇到了一个奇怪的问题:

class Server(peewee.Model):
    name = peewee.CharField

    class Meta:
        database = db


print Server.select().where(Server.name == 'postfix').sql()

returns:

('SELECT `t1`.`id` FROM `server` AS t1 WHERE %s', [False])

运行 python 2.7.6 w/ peewee 2.6.4

name 需要是 peewee.CharField 的实例,而不是 class 本身。所以你的代码应该是:

class Server(peewee.Model):
    name = peewee.CharField() # instantiate it!

    class Meta:
        database = db


print Server.select().where(Server.name == 'postfix').sql()