0

我将nicks 博客示例转换为 ndb 现在这条线失败了:

self.send_blob(file_info.blob, save_as=True) 

出现此错误:

ValueError: Expected BlobInfo value for blob_key_or_info.

其余课程:

class FileDownloadHandler(blobstore_handlers.BlobstoreDownloadHandler):
   def get(self, file_id):
       file_info = models.FileInfo.get_by_id(long(file_id))

if not file_info or not file_info.blob:
  self.error(404)
  return

self.send_blob(file_info.blob)
#self.send_blob(file_info.blob, save_as=True)

为什么结果发生了变化?

4

1 回答 1

1

在 NDB 中,您必须使用 ndb.BlobKeyProperty() 来保存 blobkey。

要使用它:

class FileInfo(ndb.Model):     
    ....
    blob_ref = ndb.BlobKeyProperty() 
....

file_info = models.FileInfo.get_by_id(... key_name ....)
self.send_blob(blobstore.BlobInfo.get(file_info.blob_ref), save_as=True)
于 2013-02-26T17:01:16.140 回答