Google app engine 如何从一个数据存储中引用多个blob

Google app engine 如何从一个数据存储中引用多个blob,google-app-engine,google-cloud-datastore,blobstore,Google App Engine,Google Cloud Datastore,Blobstore,可能重复: 我有一个名为Location的数据存储模型,我希望用户能够上传大量与该位置相关的图像。我知道我可以使用BlobReferenceProperty引用Blobstore中的那些图像,但是如何在不创建更多属性的情况下引用这些属性呢 我可以创建它们的列表或创建BlobReferenceProperties的列表属性吗?与任何基本数据存储支持的类型一样,您可以使用BlobKey的ListProperty blobRefs = db.ListProperty(blobstore.BlobKe

可能重复:

我有一个名为Location的数据存储模型,我希望用户能够上传大量与该位置相关的图像。我知道我可以使用BlobReferenceProperty引用Blobstore中的那些图像,但是如何在不创建更多属性的情况下引用这些属性呢


我可以创建它们的列表或创建BlobReferenceProperties的列表属性吗?

与任何基本数据存储支持的类型一样,您可以使用
BlobKey的
ListProperty

blobRefs = db.ListProperty(blobstore.BlobKey)
请注意:

  • 列表属性保留顺序。这在某些情况下非常有用
  • 整个列表被序列化并存储在实体中。没有办法只得到它的一部分
  • 若属性被索引,那个么每个实体都将在索引中获得它自己的条目(若索引为升序和降序,则两个条目)。每个实体最多可以有5000个索引项
  • 如果您创建了一个包含两个列表属性的复合索引,那么这将导致

  • 如果每个位置可能有5000多张照片,那么这里是另一个选项

  • 在数据存储中创建位置实体和照片实体。照片实体应具有位置实体的引用属性
  • 为blobstore中的每张照片创建一个数据存储照片对象
  • 对于每个照片实体,将“位置参照”特性设置为相应的位置对象

  • 嗯,那么完整属性应该是:List blobRefs=blobstore.BlobReferenceProperty(),因为它告诉我它不能分配给操作符:Compare[left=Name[id=List,ctx=Load,reserved=false],ops=[Lt,Gt],comparators=[Name[id=BlobReferenceProperty,ctx=Load,reserved=false]我的错。我没有看到你正在使用python。更新。好的,很好,谢谢。我找不到任何文档,但效果很好