ndb python appengine奇怪的行为模型互相引用

时间:2014-05-30 09:34:18

标签: python google-app-engine app-engine-ndb

在使用KeyProperty引用模型时,似乎必须在引用之前初始化模型 我在这里错过了一些信息吗?

from google.appengine.ext import ndb

#initialize here
class Vessel(ndb.Model):
    pass

class Manifest(ndb.Model):
    vessellist = ndb.KeyProperty(Vessel)

class Vessel(ndb.Model):
    manifest = ndb.KeyProperty(Manifest) 

1 个答案:

答案 0 :(得分:3)

这是正常行为。如果您想避免按特定顺序放置模型,并且想要这样的交叉引用,则可以使用字符串而不是模型类引用模型:

class Manifest(ndb.Model):
    vessellist = ndb.KeyProperty('Vessel')

class Vessel(ndb.Model):
    manifest = ndb.KeyProperty('Manifest')