У меня есть 4 вложенных класса, см. Пример:
class GameInfo:
id = ""
round = ""
# ... etc
class Opponent:
game_info = GameInfo()
name = ""
# ...
class Tournament:
opponent_list = [] # list of Opponent objects
# ...
class Journal(db.Model):
picked_tournament = db.BlobProperty() # here I put picked Tournament object
проблема заключается в следующем: когда я снимаю pickled_tournament
в Journal
, все данные из GameInfo
теряются.Т.е. opponent.name
показывает правильное значение, но opponent.game_info.id
показывает пустую строку.
Я использую хранилище данных Google App Engine для хранения данных, а picked_tournament
хранится в BlobProperty ().Для сериализации данных я призываю: journal.picked_tournament = pickle.dumps(tournament)
.Для загрузки данных я использую: tournament = pickle.loads(journal.picked_tournament)
Почему рассол не идет глубже двух уровней?
UPD: данные установлены следующим образом:
gi = GameInfo()
gi.id = "1234"
opp = Opponent()
opp.name = "John"
opp.game_info = gi
t = Tournament()
t.opponent_list.append(opp)
# etc...
UPD2:только что обнаружил, что все работает на сервере разработки, если база данных sqlite3, но не работает без sqlite3 и appspot!