在以下代码中:
class ClassA(db.Model):
name = db.StringProperty()
class ClassB(db.Model):
name = db.StringProperty()
deleted_flag = db.BooleanProperty()
classA = db.ReferenceProperty(ClassA)
ClassA将拥有一个名为classb_set
的属性。当我在代码中调用classb_set
时,我不希望它返回具有deleted_flag = true
的项目。
如何更改classb_set
查询的默认过滤器?我的第一直觉是在ClassA中创建另一个执行此过滤器的方法,但是有一种方法可以使classb_set
属性保持不变吗?
答案 0 :(得分:4)
您始终可以使用Python属性来实现目标:
class ClassA(db.Model):
name = db.StringProperty()
def __get_classBdeleted(self):
return self.classB_set.filter('deleted_flag =', 'True')
classBdeleted = property(__get_classBdeleted)
class ClassB(db.Model):
name = db.StringProperty()
deleted_flag = db.BooleanProperty()
classA = db.ReferenceProperty(ClassA)