1

我很难理解如何做一些应该直截了当的事情。

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。

4

1 回答 1

2

不,我认为 egg_blob(又名 spam.egg)是一个 BlobInfo。一旦你有了 spam.egg,我认为你不需要回到 blobstore 来获取它,是吗?您是否尝试过仅使用 spam.egg 参考?即做

self.redirect('/serve/%s' % spam.egg.key())
于 2011-01-22T05:18:40.890 回答