1

SQLAlchemyにテーブル列を自動ロードさせようとしています(重要な場合はMySQLを使用)。私は持っています:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()    

class User(object):
    __tablename__ = 'users'
    __table_args__ = {'schema': 'users', 'autoload': True}

これが私のエラーです:

InvalidRequestError: SQL expression, column, or mapped entity expected - got '<class 'myproject.models.User'>'

関数を追加しました__init__が、それでも同じエラーが発生します。

def __init__(self,col1,col2):
    self.col1 = col1 
    self.col2 = col2
4

1 に答える 1

3

あなたのUserクラスはBase、その親としてではなく、持つべきobjectです:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
engine = create_engine(db_string, echo=db_echo)
Base = declarative_base()    
Base.metadata.bind = engine

class User(Base):
    __tablename__ = 'users'
    __table_args__ = {'schema': 'users', 'autoload': True}
于 2012-10-26T01:47:18.157 に答える