我遇到了在我的机器上测试应用程序时不会发生的错误,但只有在部署之后才会发生。
我有一些与数据存储区中的父项关联的图片,并且我设置了一个查询来删除父项和相关图片:数据存储区和 blobstore 值
我有一个基本密钥,用作所有项目的祖先:
def base_key(group = 'default'):
return db.Key.from_path('my_items', group)
我得到了父项目和他的附件
parent = Parent.by_keyname(s)
attachments = Attachment.by_parent_keyname(s)
这是这些查询的实现:
@classmethod # in Parent class
def by_keyname(cls, s):
item_k = db.Key.from_path('Parent', s, parent=base_key())
item= db.get(item_k)
return item
@classmethod # in Attachment class
def by_parent_keyname(cls, s):
item_k= db.Key.from_path('Parent', s, parent=base_key())
q = Attachment.all()
q.ancestor(item_k)
results = q.fetch(20)
return results
在获得父项和附件后,我实例化了一个列表,其中包含我必须从数据存储和 blobstore 中删除其元素的所有键:
entities_to_delete = [parent.key()]
for a in attachments:
entities_to_delete.append(a.key())
entities_to_delete.append(
db.Key.from_path('__BlobInfo__', str(a.blob.key())))
db.delete(entities_to_delete)
这在我的机器上完美运行,但部署后,如果我测试这个请求处理程序,我会收到服务器错误,这是我记录的错误: