如何将新的“.where()”添加到现有的 peewee 查询中?

How to add a new ".where()" into existing peewee query?

我正在尝试将新的 .where 添加到现有的 peewee 查询中,但我做不到。使用调试器我发现 SQL 在我创建查询后没有改变。

我的代码:

query = Model.select() \
  .where(Model.year << args.years)
if args.models:
  query.where(Model.title << args.models)
if args.company:
  query.where(Model.company << args.company)
 else:
  query.where(Model.company.is_null(True))
if args.make:
  query.where(Model.make << args.make)

Peewee 不会就地变异,因此您只需捕获后续调用的 return 值:

if args.models:
  query = query.where(Model.title << args.models)  # Note the query =