Управление индексированием свойств модели ndb.Expando

У меня есть ndb.Model, который содержит модель ndb.Expando в качестве структурированного свойства, и я хотел бы иметь возможность управлять индексацией, но ничего не могу найти в документации по этому поводу.

class MyModel2(ndb.Expando):
    pass

class MyModel(ndb.Model):
    sub_entity = ndb.StructuredProperty(MyModel2)

Единственная часть документации, которую я могу найти, это следующее:

Вы можете указать обычные параметры свойств для структурированных свойств (кроме индексированных)

Я предполагаю, что это связано с тем, что фактическая индексация должна быть указана для каждого свойства во встроенной модели. Однако неясно, как включить или отключить индексирование свойств модели Expando.


person Noah Watkins    schedule 15.05.2018    source источник


Ответы (1)


Вы можете использовать объект _properties, чтобы установить, должно ли поле быть проиндексировано или нет. Например.

a = MyModel2()
a.value = '3'
a._properties['value']._indexed = False

Дополнительные сведения можно найти в документации по адресу _properties.

person Jim Morrison    schedule 16.05.2018
comment
Это здорово. Я просматривал эту документацию, и ни один из примеров не включает настройку свойств, а только их просмотр. У вас есть какие-либо ссылки на их настройку явно. - person Noah Watkins; 16.05.2018
comment
Прохладный. Я могу копаться в Python SDK, чтобы увидеть, могу ли я что-нибудь увидеть, но этого достаточно для меня. Спасибо. - person Noah Watkins; 17.05.2018