SQLAlchemy не может найти имя класса

Упрощенно, я имею следующую структуру классов (в одном файле):

Base = declarative_base()

class Item(Base):
    __tablename__ = 'item'
    id = Column(BigInteger, primary_key=True)
    # ... skip other attrs ...

 class Auction(Base):
     __tablename__ = 'auction'
     id = Column(BigInteger, primary_key=True)
     # ... skipped ...
     item_id = Column('item', BigInteger, ForeignKey('item.id'))

     item = relationship('Item', backref='auctions')

Я получаю следующую ошибку:

sqlalchemy.exc.InvalidRequestError
InvalidRequestError: When initializing mapper Mapper|Auction|auction, expression
    'Item' failed to locate a name ("name 'Item' is not defined"). If this is a
    class name, consider adding this relationship() to the Auction class after
    both dependent classes have been defined.

Я не уверен, как Python не может найти класс Item, поскольку даже при передаче класса, а не имени в виде строки, я получаю ту же ошибку. Мне с трудом удалось найти примеры того, как сделать простые отношения с помощью SQLAlchemy, так что если здесь что-то очевидно неправильно, я прошу прощения.

27
задан Hank 20 March 2017 в 14:01
поделиться