1

私は得る:

ImportError: cannot import name Image (from image_blob.py)

私を助けてくださいありがとう:s

私のコード:

image.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

画像ブロブ:

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)
4

1 に答える 1

2

image_blob.pyの全体image.pyが処理される前にからインポートしようとしています。from app.models.item import Itemが発生した時点では、class Imageまだ定義されていないため、まだインポートできません (シンボルが実際に定義される前に、クラス定義全体が処理されている必要があります)。

imageこれには簡単な解決策があります: でプロパティを定義しないでくださいImageBlob。AppEngine のモデルは自動的に後方参照を定義するため、 に を追加するImageBlobと、それを参照する のセットを参照Imageする のプロパティが自動的に定義されます (現在のユース ケースでは、サイズ 1)。ImageBlobImage

于 2010-10-31T21:18:33.380 に答える