如何从BlobReferenceProperty中获取BlobStore文件名?
我在理解怎么做一件应该很简单的事情时遇到了困难。
class Spam(db.Model):
egg = blobstore.BlobReferenceProperty(blobstore.BlobKey, required=False)
class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get_uploads('file')
blob_info = upload_files[0]
spam = models.Spam(egg=blob_info.key())
spam.put()
到现在为止都还不错,对吧?现在我想显示这个文件。
egg_blob = blobstore.BlobInfo.get(spam.egg) #error below is thrown here
self.redirect('/serve/%s' % egg_blob.key())
BadArgumentError: Expected str or BlobKey; received <google.appengine.ext.blobstore.blobstore.BlobInfo object at 0x3ed8970> (a BlobInfo)
我漏掉了什么呢?spam.egg确实是一个BlobKey。
1 个回答
2
不,我觉得egg_blob(也就是spam.egg)是一个BlobInfo。拿到spam.egg之后,我觉得你就不需要再去blobstore找它了,对吧?你有没有试过直接使用spam.egg的引用?也就是说,试试这样做:
self.redirect('/serve/%s' % spam.egg.key())