Я столкнулся с очень нелогичной ситуацией с запросом хранилища данных.
вот шаги:
получить объект с первым запросом:
list_objects = MyModel.query(cls.name == name).fetch()
изменить list_objects:
for o in list_objects: o.value = new_value
получить объект во второй раз:
list_objects_2 = MyModel.query(cls.name == name).fetch()
теперь все все объекты в list_objects_2 имеют новое_значение, хотя на шаге 2 никогда не вызывался метод put для фактического изменения хранилища данных, и я проверил свое хранилище данных между ними, и значение является исходным значением.
изменить list_objects_2:
for o in list_objects_2: o.value = new_new_value
, и теперь все list_objects1 имеют new_new_value
Я также пробовал с fetch(keys_only = True)
и k.get()
, но та же проблема.
у меня сложилось впечатление, что запрос относится к фактическому хранилищу данных, почему он продолжает возвращать одни и те же экземпляры вместо создания новых? это из-за кэширования какой-то?