所以我决定重写我的图片库,因为新的高性能图像服务的东西.这意味着使用我以前从未使用过的Blobstore.在我尝试将BlobKey存储在我的模型中之前,这似乎很简单.
我如何在模型中存储对blobstorekey的引用?我应该使用字符串还是应该使用一些我不知道的特殊属性?我有这个模型
class Photo(db.Model):
date = db.DateTimeProperty(auto_now_add=True)
title = db.StringProperty()
blobkey = db.StringProperty()
photoalbum = db.ReferenceProperty(PhotoAlbum, collection_name='photos')
Run Code Online (Sandbox Code Playgroud)
我收到此错误:属性blobkey必须是str或unicode实例,而不是BlobKey
当然,我是应用程序引擎的新手,但这是我见过的第一个主要墙.谷歌广泛搜索没有任何成功.
小智 11
以下适用于我.请注意,该类是blobstore.blobstore而不仅仅是blobstore.
模型:
from google.appengine.ext.blobstore import blobstore
class Photo(db.Model):
imageblob = blobstore.BlobReferenceProperty()
Run Code Online (Sandbox Code Playgroud)
设置属性:
from google.appengine.api import images
from google.appengine.api import blobstore
from google.appengine.ext.webapp import blobstore_handlers
class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get_uploads('file') # 'file' is file upload field in the form
blob_info = upload_files[0]
entity = models.db.get(self.request.get('id'))
entity.imageblob = blob_info.key()
Run Code Online (Sandbox Code Playgroud)
获取物业:
image_url = images.get_serving_url(str(photo.imageblob.key()))
Run Code Online (Sandbox Code Playgroud)
您需要使用 db.blobstore.BlobReferenceProperty 而不是 db.StringProperty() (我认为)
我仍在尝试解决这个问题,但我想我应该发布一些想法。
以下是 Google 的参考页面: http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html
| 归档时间: |
|
| 查看次数: |
3437 次 |
| 最近记录: |