Для импорта мне нужно добавить огромное количество bId к экземпляру MyClassA
foos = json.loads(self.request.get('foos'))
for foo in foos :
a = MyClassA()
a.id = foo["id"]
a.name = foo["name"]
for bId in foo["stringWithAllBidsForA"].split(";") :
tmp = B.gql("WHERE id = '"+bId +"'").get()
if tmp :
a.bList.append(tmp.key())
a.put()
Я уверен, что это лениво, но как я могу оптимизировать этот код?
Я думаю добавить (indexed = True) в поле id для B и только для ключа для запроса B gql и поставить пакетное хранилище данных.
Но я не знаю, как это сделать.
редактировать:
Я заменил b.id = bId by b = MyClassB(key_name= bId)
так что теперь я делаю:
a.bList.append( foo["stringWithAllBidsForA"].split(";"))
У меня проблема с кодированием при преобразовании str в ключ, который я пробовал
с encoded= foo["stringWithAllBidsForA"].split(";")[0]
Что не так? невозможно декодировать> split> cast to key.