从peewee Query select中删除一个元素

时间:2015-05-20 13:49:29

标签: python select peewee

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

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

我想从查询结果中排除名称列表

2 个答案:

答案 0 :(得分:2)

正如coleifer所说,既然您正在使用小便,请使用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

答案 1 :(得分:1)

最好也是最恰当的方法是使用SQL来执行此操作:

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

然后对结果列表进行预过滤。

如果您想过滤出名称的列表,那么您可以编写

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