实体上的透明逻辑过滤器 - App Engine

时间:2012-07-13 14:17:40

标签: python google-app-engine nodes

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

例如

Node.query()

应返回Node.active字段设置为True的每个节点,并忽略活动字段设置为false的节点,不带任何其他指令。

是否可以以任何方式或类似方式覆盖该功能?我对python和app引擎都不是很好,所以我不确定我是否能真正做到这一点。

1 个答案:

答案 0 :(得分:2)

您应该为Node类创建一个类方法,为您执行查询,然后始终使用它。 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的一部分。我广泛使用这种方法,而不是在整个地方编写相同的(通常更复杂的查询)。