我一直在关注本网站上的说明 - Is it possible to find and delete orphaned blobs in the app engine blobstore? - 关于如何删除孤立的blob,但我一直收到错误。
from google.appengine.ext.blobstore import BlobInfo
#Here is where I store my blobKeys
class Content(ndb.Model):
blobKey = ndb.BlobKeyProperty(required=False)
#Here is what I've been trying to follow
class Refresh(blobstore_handlers.BlobstoreUploadHandler):
def get(self):
blobs = BlobInfo.all().fetch(500)
for blob in blobs:
if not Content.all().filter("blob_ref =", blob.key()).count(1): #ERROR
blob.delete()
我一直收到错误AttributeError: type object 'Content' has no attribute 'all'
海报提到"如果您的BlobReferenceProperty字段被编入索引,那么是的,它很可能。"这可能是我使用ndb.BlobKeyProperty而不是BlobReferenceProperty的问题吗?谢谢,阅读。
更新 请参阅Expected BlobKey but instead I get a BlobInfo object - How to get BlobKey from BlobInfo object?以查看解决方案
答案 0 :(得分:1)
你在混淆db和ndb apis
要使用ndb进行查询,请使用query
方法
在你的情况下
blobs = BlobInfo.query().fetch(500)
但这不是真的正确。你应该把它重写为
for blob in BlobInfo.query(options=QueryOptions(batchsize=200))
# do stuff