Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine BadValueError:应为字符串,在创建子实体时获取密钥_Google App Engine_Python 2.7_Google Cloud Datastore_App Engine Ndb - Fatal编程技术网

Google app engine BadValueError:应为字符串,在创建子实体时获取密钥

Google app engine BadValueError:应为字符串,在创建子实体时获取密钥,google-app-engine,python-2.7,google-cloud-datastore,app-engine-ndb,Google App Engine,Python 2.7,Google Cloud Datastore,App Engine Ndb,首先,我要说的是,我对Python、应用程序引擎和数据存储非常陌生,所以如果我遗漏了一些明显的东西,请原谅 我正在尝试在数据存储中设置一些具有祖先关系的数据,方法与Google的示例guestbook应用程序相同: class Guestbook(webapp2.RequestHandler): def post(self): greeting = Greeting(parent=guestbook_key) 我创建了这段代码作为一个实验,看看是否可以让它工作: class Sub

首先,我要说的是,我对Python、应用程序引擎和数据存储非常陌生,所以如果我遗漏了一些明显的东西,请原谅

我正在尝试在数据存储中设置一些具有祖先关系的数据,方法与Google的示例guestbook应用程序相同:

class Guestbook(webapp2.RequestHandler):
  def post(self):
    greeting = Greeting(parent=guestbook_key)
我创建了这段代码作为一个实验,看看是否可以让它工作:

class Subscriber(ndb.Model):
    user_nickname = ndb.StringProperty()
    user_id = ndb.StringProperty()

class Music(ndb.Model):
    level = ndb.StringProperty() # top or sub
    parent = ndb.StringProperty() # only if sub
    title = ndb.StringProperty()

class SetupHandler(webapp2.RequestHandler):
    def get(self):
        user = users.get_current_user()
        subscriber = Subscriber(id=user.user_id())
        subscriber.user_id = user.user_id()
        subscriber.user_nickname = user.nickname()

        haydn = Music(parent=subscriber.key)
        haydn.level = "top"
        haydn.title = "Haydn Trumpet Concerto"
        haydn.put()
在我看来,我似乎在尝试做基本相同的事情。。但我得到了这个错误:

get中第41行的文件“…Application\datastoreexplore\main.py” haydn=Music(parent=subscriber.key)BadValueError:应为字符串,get key('subscriber','12169615523634875051')


我花了几个小时阅读文档,在stackoverflow和其他地方搜索。我被难住了。我做错了什么???

您的问题是您已将父对象定义为StringProperty,但如果要使用anancestor创建实体,请传入一个作为有效构造函数参数的键。您不应该让属性名为parent。

谢谢!!我知道这会很明显,但我就是看不见!!