2011-01-22 14 views
1

わかりやすい何かをする方法を理解するのに苦労しています。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です。

答えて

2

いいえ、私はegg_blob(別名spam.egg)はBlobInfoだと思います。 spam.eggを取得したら、ブロブストアに戻る必要はないと思いますか? spam.eggリファレンスを使用してみましたか?すなわちdo

self.redirect('/serve/%s' % spam.egg.key()) 
+0

あなたは正しいです!私はそれを熟考していました - それはBlobInfoに卵を逆参照し、次にあなたはそのキーを普通に呼び出します。 –

関連する問題