我在 google app engine 和 python 上使用 NDB 时遇到了这个错误:Cannot repeat StructuredProperty None that has repeating properties of its own。
它是“无”,因为我在创建新的空字符的过程中遇到错误,因此我可以在创建后填写属性。
我猜它不喜欢我希望我的实体“Character”有一个重复和结构化的属性“weaponList”,其中包含另一个实体“Weapon”,该实体“Weapon”也有一个重复的结构化属性,包含和实体“诅咒” .
与史蒂夫霍夫曼一起在 Udacity 的 cs253 上的第 5 周左右,似乎我知道足够危险,所以我想我会确认这是问题所在,并希望能得到一个更好的解决方案来实现我的目标。
基本上,我正在制作一个类似于龙与地下城的角色管理系统,该系统具有一些 GM/玩家实时消息传递和角色表更新功能,我认为这些功能将对越来越多的 google+ 环聊 RPG 玩家有用。我有一份武器、物品、诅咒和魔法效果的清单,它们都是单独的实体,所以我可以随意混合和匹配它们。
武器和物品可以有任意数量的诅咒或良好的魔法效果。角色可以拥有任意数量的武器,yadda yadda。起初,我认为存储实体键列表是可行的方法。然后我想我必须单独从数据库中获取每种武器,每种武器的每个诅咒……这似乎是一种低效的方法。
另外,玩家和 GM 喜欢定制东西,而这并不适合。所以,它击中了我,我可以在一个表中列出标准的东西,并且,当你将它“添加”到一个角色时,它会以重复的结构化属性专门复制到该角色,你可以自定义地狱了在不影响其他任何人的情况下,或者无需我做任何额外的工作。
但它不起作用,所以我认为这是不允许的,因为很可能,列表中的列表中的列表永远不会结束,这可能会导致。有什么更好的方法?