代码之家  ›  专栏  ›  技术社区  ›  mlsteeves

如何在python和Google AppEngine中更改集合的默认属性

  •  0
  • mlsteeves  · 技术社区  · 16 年前

    在以下代码中:

    class ClassA(db.Model):
        name = db.StringProperty()
    
    class ClassB(db.Model):
        name = db.StringProperty()
        deleted_flag = db.BooleanProperty()
        classA = db.ReferenceProperty(ClassA)
    

    classb_set . 当我打电话时 类b_集 在代码中,我不希望它返回具有 deleted_flag = true

    如何更改服务器上的默认筛选器 类b_集 查询我的第一反应是在ClassA中创建另一个方法来进行此筛选,但是有没有一种方法可以保持 类b_集 财产?

    1 回复  |  直到 16 年前
        1
  •  4
  •   Adam Crossland    16 年前

    您可以始终使用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)