从db转换为ndb后,blob_send save_as = True失败

时间:2013-02-26 16:30:59

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

我将nicks blog示例转换为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)

结果为何会改变?

1 个答案:

答案 0 :(得分: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)