从 peewee 查询中删除一个元素 select

Delete an element from peewee Query select

我有一个 Peewee 的 table.select() 的查询结果,假设我想删除结果列表的一部分 (QuerySelect) 那是怎么做到的?或者从查询中排除某些元素?

#Edited
result = users.select();
for element in result:
   for name in list:
      if(element.name == name):
          removeThisElement()

我想从查询结果中排除一个名字列表

所说,既然你用的是peewee,那就用SQL来做,所以根据你上次的编辑,解决方案应该是:

result = User.select().where(User.name.not_in(a_list_of_names))

尽管列表理解也有效:

result = [user for user in Users.select() if user.name not in a_list_of_names]

文档:Query.where

最好和最合适的方法是使用 SQL 来做到这一点:

User.select().where(User.name != 'myname')

然后您的结果列表被预先过滤。


如果你想过滤掉 list 个名字,那么你可以写

names_to_exclude = ['lord63', 'Newbie', 'etc']
users = User.select().where(User.name.not_in(names_to_exclude))