Python 实体上的透明逻辑筛选器-应用程序引擎

Python 实体上的透明逻辑筛选器-应用程序引擎,python,google-app-engine,nodes,Python,Google App Engine,Nodes,我不确定我是否能轻松做到这一点,但我需要为与我的模型相关的每个查询自动在字段上添加一个过滤器。我已将布尔属性“active”添加到名为Node的模型中 比如说 Node.query() 应将字段node.active设置为True的每个节点返回,并忽略活动字段设置为false的节点,而无需任何其他说明 是否可以以任何方式或类似方式重写该函数?我对python和app engine都不是很在行,所以我不确定我是否真的能做到这一点。你应该为你的节点类创建一个类方法来为你进行查询,然后一直使用它。e

我不确定我是否能轻松做到这一点,但我需要为与我的模型相关的每个查询自动在字段上添加一个过滤器。我已将布尔属性“active”添加到名为Node的模型中

比如说

Node.query()
应将字段node.active设置为True的每个节点返回,并忽略活动字段设置为false的节点,而无需任何其他说明


是否可以以任何方式或类似方式重写该函数?我对python和app engine都不是很在行,所以我不确定我是否真的能做到这一点。

你应该为你的节点类创建一个类方法来为你进行查询,然后一直使用它。e、 g

class Node(db.Model):
   # some properties and stuff

   @classmethod
   def active_nodes(cls):
       return cls.all().filter('active = ',True)
然后始终使用Node.active_nodes()
这是您经常使用的正式api的一部分。我广泛使用这种方法,而不是到处写同样的(通常是更复杂的查询)。

这是一个聪明的解决方案,现在我将解决这个问题。我认为它更实用,即使我仍然对我在问题中所写的内容感兴趣,主要是为了更好地理解python和ndb。无论如何,这个解决方案足以解决这个问题。您当然可以重写
query
方法来执行您所描述的操作,但这将阻止您在没有筛选器的情况下进行查询。蒂姆的回答在这里更有意义。