Как изменить свойство по умолчанию для набора в Python и Google AppEngine - PullRequest
0 голосов
/ 23 декабря 2009

В следующем коде:

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 a?

1 Ответ

4 голосов
/ 23 декабря 2009

Вы всегда можете использовать свойство 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...