我收到了这条消息:
SAWarning:表上的列 'id_usuario' 被具有相同键的 Column('id_usuario', Integer(), table=, primary_key=True, nullable=False) 替换。考虑 use_labels 用于 select() 语句。
我的模型是:
from settings import DATABASE
engine = create_engine('mysql+mysqldb://%s:%s@%s/%s?charset=utf8' % (DATABASE["username"], DATABASE["password"], DATABASE["host"], DATABASE["database"]))
Session = sessionmaker(bind=engine)
session = Session()
metadata = MetaData()
Base = declarative_base(metadata=metadata)
class UserSearch(Base):
__tablename__ = 'user_search'
id = Column(Integer, primary_key=True)
id_usuario = Column("id_usuario", Integer, ForeignKey("usuario.id_usuario"))
user = relationship("User", lazy=False, innerjoin=True)
#...
class User(Base):
__tablename__ = 'usuario'
id_usuario = Column("id_usuario", Integer, primary_key=True, nullable=False)
#...
Run Code Online (Sandbox Code Playgroud)
我使用这样的查询:
session.query(UserSearch).filter(UserSearch.category == 'hotel')
Run Code Online (Sandbox Code Playgroud)
生成的查询是:
SELECT user_search.id, user_search.id_usuario, usuario_1.id_usuario …Run Code Online (Sandbox Code Playgroud)