gpt4 book ai didi

python - ndb.TextProperty 到 ndb.StringProperty

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:48 25 4
gpt4 key购买 nike

如果我有一个具有以下定义的Contact 模型:

class Contact(ndb.Model):

name = ndb.TextProperty(indexed=False)

website = ndb.TextProperty(indexed=False)

location = ndb.TextProperty(indexed=False)

数据存储中使用该模式的实体是否会通过将 TextProperty 更改为 StringProperty 以任何方式“破坏”?

最佳答案

首先,您不需要为 ndb.TextProperty 使用 indexed=False,因为它是 unindexed by default

如果您想将 ndb.TextProperty 更改为 ndb.StringProperty,您需要确保每个字段的长度小于 500 个符号(这是 StringProperty 的最大长度)。此外,如果您想将任一属性编入索引,则需要删除 indexed=False 并重新放置所有实体以将它们添加到索引中。

要重新放置,您可以使用以下代码:

from google.appengine.ext import deferred
def update_index(cursor=None):
logging.info(cursor)
q = Contact.query()
contacts, cursor, more = q.fetch_page(100, start_cursor=cursor)
ndb.put_multi(contacts)
if more:
deferred.defer(update_index, cursor)

别忘了添加

builtins:
- deferred: on

到你的 app.yaml 文件

关于python - ndb.TextProperty 到 ndb.StringProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28904068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com