基于 peewee 查询的过滤列表

Filter list based on peewee query

给定以下模型:

class User(BaseModel):
     name = peewee.CharField()

和姓名列表:

names = ['Laurence', 'Emily', 'Rose', 'Chris', 'Isaac']

如何根据数据库中是否存在名称等于列表中任何名称的 User 来过滤此类列表,而不必对列表中的每个元素进行查询?例如,如果存在名称为 "Laurence""Rose" 的用户,我如何将我的名称列表过滤为 ['Emily', 'Chris', 'Isaac'] 不做类似的事情:

[name for name in names if not User.select().where(User.name == name).exists()]
matching_users = User.select().where(User.username.in_(names))
names_present = set(user.username for user in matching_users)
absent = set(names) - names_present