Google app engine GAE ReferencePropertyResolveError-删除父实体

Google app engine GAE ReferencePropertyResolveError-删除父实体,google-app-engine,Google App Engine,错误 TemplateSyntaxError: Caught ReferencePropertyResolveError while rendering: ReferenceProperty failed to be resolved: [u'Image', 12345678L] 型号 #ModelBase class extends from db.Model class Article(TaggableModel): ... image = db.ReferenceProper

错误

TemplateSyntaxError: Caught ReferencePropertyResolveError while rendering: ReferenceProperty failed to be resolved: [u'Image', 12345678L]
型号

#ModelBase class extends from db.Model

class Article(TaggableModel):
   ...
  image = db.ReferenceProperty(Image, collection_name='image_set')
  image_blob = blobstore.BlobReferenceProperty()

class BlobStoreImage(ModelBase):
   ...
  title = db.StringProperty()
  alt = db.TextProperty(default="")
  blobkey = blobstore.BlobReferenceProperty()

class Image(ModelBase):
   ...
  title = db.StringProperty()
  original = db.BlobProperty()
据我所知,有一篇文章提到了一个不存在的
图像
,带有
id='12345678L'
。然而,似乎是这样。在这种情况下,如何通过删除与不存在的图像关联的
文章
,或者创建具有上述id的图像来解决此错误


我已经尝试了后者,服务器返回了200代码,但可能我的语法错误。

链接的问题a)过时,b)与您的问题完全无关。当然,你可以通过ID查询单个图像,这根本不是Nick在那里说的(仅供参考,他说你不能只获取单个字段而不是整个记录,这在当时是正确的,但事实上你现在可以通过使用)

使用普通db查询语法,您可以找到具有相关图像id的文章,如下所示:

from google.appengine.ext import db
image_key = db.Key.from_path(u'Image', 12345678L)
article = Article.all().filter('image', image_key).get()

如果这让您感到困惑,您应该去阅读详细的信息。

首先-感谢您的快速回复!注意:我不认为需要结尾处的
.get()
。我还没有看完整的文档,但这是有道理的。如果由于某种原因无法按字段进行查询,我会觉得很奇怪。get或EQUALITE是必需的,其他wise文章将被分配一个查询对象。然后,您可以在这样一个对象上进行迭代,但如果您想要一个单一的实体,那么这个实体将效率低下且难以处理。