0

ニックスのブログの例を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 に答える