Запрос NDB для ключа или идентификатора StructuredProperty

Я новичок в Python и Google App Engine, и у меня возникают проблемы с получением определенных данных из хранилища данных с помощью NDB.

Я хочу подсчитать результаты запроса, где StructuredProperty имеет заданный ключ/сущность/идентификатор:

class MyData(ndb.Model):
    group = ndb.StructuredProperty(MyGroup)

    @classmethod
    def get_count_by_group(cls, entity):
        return cls.query(MyData.group.key == entity.key).count()
        #return cls.query(MyData.group == entity).count()

Данный объект является экземпляром модели, поэтому я могу получить доступ к ключу и идентификатору. После вызова происходит сбой, так как не найден ключ свойства для "MyGroup". Документация запросов NDB содержит примеры использования фильтра для свойств класса, и он работает в других функциях, но я не знаю, как запрашивать/фильтровать «внутренние» свойства модели, такие как ключ или идентификатор.


person Burak    schedule 08.01.2017    source источник
comment
У StructuredProperties нет ключей - см. stackoverflow.com/a/14652433/5320906   -  person snakecharmerb    schedule 08.01.2017
comment
Итак, я должен сравнить свойства StrcuturedProperty со значениями объекта? Или есть другой способ?   -  person Burak    schedule 08.01.2017
comment
Добавить еще одно свойство к структурированному свойству, содержащему значение ключа, и запросить его?   -  person snakecharmerb    schedule 08.01.2017
comment
Но я говорю, что группа является StructuredProperty модели MyGroup. Если я добавлю ключ поля в модель, у меня будет два ключа поля. Разве это не лишнее? Или я должен добавить поле KeyProperty в MyData?   -  person Burak    schedule 08.01.2017
comment
Возможно, вы захотите объяснить, почему вы хотите запрашивать ключ структурированного свойства. Какое значение имеет этот ключ? Пока вы не объясните это, я не думаю, что мы сможем вам помочь.   -  person gaefan    schedule 08.01.2017
comment
Мне жаль. На самом деле я хочу запросить идентификатор объекта хранилища данных, который создается автоматически и является частью ключа. У меня есть объект, и поэтому я хочу, чтобы все результаты MyData, где группа совпадает с этим объектом. Может быть, StructuredProperty по дизайну неправильный, а KeyProperty лучше иметь ссылку на конкретную группу?   -  person Burak    schedule 08.01.2017