我得到:
ImportError: cannot import name Image (from image_blob.py)
请帮助我,谢谢:s
我的代码:
图像.py:
from google.appengine.ext import db
from app.models.item import Item
class Image(Item):
# imports
from app.models.image_blob import ImageBlob
#from app.models.user import User
#from list_user import ListUser # is needed in order to have the references
# references
#uploaded_by_user = db.ReferenceProperty(User, required = True)
large_image = db.ReferenceProperty(ImageBlob, required = True)
small_image = db.ReferenceProperty(ImageBlob, required = True)
# image info
title = db.StringProperty(required = True)
description = db.StringProperty(required = False)
# metadata
# relations
图像_blob:
from google.appengine.ext import db
class ImageBlob(db.Model):
from app.models.image import Image
data = db.BlobProperty(required = True)
image = db.ReferenceProperty(Image, required = True)
最佳答案
您尝试在处理整个 image.py
之前从 image_blob.py
导入。在发生 from app.models.item import Item
时,class Image
尚未定义,因此还无法导入(整个类定义必须在实际定义符号之前处理完毕。
对此有一个简单的解决方案:不要在 ImageBlob
上定义 image
属性。 AppEngine 的模型自动为您定义一个向后引用,因此当您将 ImageBlob
添加到 Image
时,它会自动在ImageBlob
引用回引用它的 Image
集合(在您当前的用例中,其大小应为 1)。
关于Python 循环引用问题 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4065117/