gpt4 book ai didi

python - 错误请求错误 : app "dev~myapp" cannot access app "s~myapp"'s data

转载 作者:行者123 更新时间:2023-11-30 23:19:45 26 4
gpt4 key购买 nike

我有错误:

BadRequestError: app "dev~myapp" cannot access app "s~myapp"'s data

这很相似,但是 the opposite way around to this question .

这个答案似乎不适用于我的应用程序(甚至试图将其颠倒过来) - 我只有一个应用程序,并且我没有使用远程 API,并且我没有使用 urlsafe key ,并且我所有的关键属性都是 db.ReferenceProperty s,或db.ListProperty( db.Key ) s。

错误出现在我尝试渲染的模板的第一行:

File "/.../template.html", line 1, in top-level template code {% extends "page.html" %}

如果我注释掉该行,则会发生错误:

File "/.../template.html", line 1, in top-level template code <!--{% extends "page.html" %}-->

这向我表明错误实际上是在应用模板魔法之前使用 Jinja 加载模板。

template.html使用实体列表变量(不是 Query 对象,而是 [e for e in queryObject] s)来呈现。如果我用空列表替换它们,页面就会呈现良好。

我的开发服务器的数据存储区填充了生产服务器的备份,但到目前为止,我在访问这些条目时还没有遇到问题。我得到的这些实体列表如下:

@staticmethod
def gql(query, *a, **kw):
keys = super(Model, Model).gql(query, *a, **kw).run(keys_only=True)
cached = []

for key in keys:
inCache = memcache.get('Model_'+str(key))
if inCache:
cached.append(inCache)
else:
fromDB = Model.get(key)
memcache.set('Model_'+str(key), fromDB)
cached.append( fromDB )

return cached

我可以用 logging 打印结果在用 Jinja 渲染之前。在交互式控制台中也很好。

为什么这会变成尝试访问另一个应用程序的数据,并在 Jinja 渲染它时引发此异常?

最佳答案

我找到了原因 - db.ListProperty( db.Key ) 的形式如下:

[datastore_types.Key.from_path(u'ModelName', IDnumL, _app=u's~myapp')]

这是使用 this neat function 从生产服务器备份导入到开发服务器的要点。

不幸的是,正如我之前提示的那样,开发服务器不允许编辑db.ListProperty(以及其他一些类型)。

我的解决方案是在交互式控制台中执行以下操作:

from google.appengine.ext.db import Key

for e in Model.all():
if e.keyList:
prod = e.keyList
dev = eval( str(prod).replace('s~','dev~').replace('datastore_types.','') )
e.keyList = dev
e.put()

关于python - 错误请求错误 : app "dev~myapp" cannot access app "s~myapp"'s data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25923204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com