我有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
问题是:当我在Journal
中取消pickled_tournament
时,GameInfo
中的所有数据都将丢失。一、 e.opponent.name
显示正确的值,但opponent.game_info.id
显示空字符串。在
我使用googleappengine数据存储来存储数据,picked_tournament
存储在BlobProperty()中。{cd7>调用数据。要加载数据,我使用:tournament = pickle.loads(journal.picked_tournament)
为什么泡菜的深度不超过2层?在
UPD:数据设置如下:
^{pr2}$UPD2:刚刚发现,如果数据库是sqlite3,在development server上一切正常,但是没有sqlite3和appspot就不能工作!在
根据App Engine文档(我没有在实践中尝试过),尝试将pickle数据设置为blob:
如果这不起作用,验证一下选秀比赛杂志== 泡菜、垃圾(锦标赛)。在
在
Opponent
类的构造函数中,实例化了GameInfo
的单个副本,该副本由该类的所有实例使用。例如:相反,您需要为每个对手实例创建一个。通过在构造函数中初始化它来执行此操作,如下所示:
^{pr2}$另外,既然不是20世纪90年代,你真的应该使用new style classes。在
相关问题 更多 >
编程相关推荐