Python 初始化对象时出现问题
我尝试创建屏幕对象时出现了一个奇怪的错误。在它工作之前没有任何问题,但是我在向用户类添加新属性时遇到了这个错误。此属性通过用户屏幕以多对多的关系与屏幕相关。这就是错误: “InvalidRequestError:一个或多个映射程序未能编译。异常可能在hasattr()调用中被抑制。消息是:一个或多个映射程序未能编译。异常可能在hasattr()调用中被抑制。消息是:类'zeppelinlib.screen.ScreenTest.screen'未映射” 这些是课程:Python 初始化对象时出现问题,python,sqlalchemy,Python,Sqlalchemy,我尝试创建屏幕对象时出现了一个奇怪的错误。在它工作之前没有任何问题,但是我在向用户类添加新属性时遇到了这个错误。此属性通过用户屏幕以多对多的关系与屏幕相关。这就是错误: “InvalidRequestError:一个或多个映射程序未能编译。异常可能在hasattr()调用中被抑制。消息是:一个或多个映射程序未能编译。异常可能在hasattr()调用中被抑制。消息是:类'zeppelinlib.screen.ScreenTest.screen'未映射” 这些是课程: class Screen(rd
class Screen(rdb.Model):
"""Set up screens table in the database"""
rdb.metadata(metadata)
rdb.tablename("screens")
id = Column("id", Integer, primary_key=True)
title = Column("title", String(100))
ip = Column("ip", String(20))
...
user_screens = Table(
"user_screens",
metadata,
Column("user_id", Integer, ForeignKey("users.id")),
Column("screen_id", Integer, ForeignKey("screens.id"))
)
class User(rdb.Model):
"""Set up users table in the database"""
rdb.metadata(metadata)
rdb.tablename("users")
id = Column("id", Integer, primary_key=True)
name = Column("name", String(50))
...
group = relationship("UserGroup", uselist=False)
channels = relationship("Channel", secondary=user_channels, order_by="Channel.titleView", backref="users")
mediaGroups = relationship("MediaGroup", secondary=user_media_groups, order_by="MediaGroup.title", backref="users")
screens = relationship("Screen", secondary=user_screens, backref="users")
我可能不会向用户添加新关系,因为我真的不知道问题出在哪里
万分感谢 尝试通过
primaryjoin
关键字参数在关系中的一个(不知道是哪一个)上指定主连接。有时候(在复杂关系图中),SQLAlchemy很难弄清楚它应该如何进行。为我工作过不止一次,尽管是在0.5.x上。什么是rdb.Model?它是声明性的_base()调用的结果吗?rdb.Model是基于SQLAlchemy构建的库。该库与GROk相关,我正在使用的CMS。这个问题可能会因为那个图书馆而出现,我不确定,但无论如何它都很奇怪!我相信你的问题与你正在使用的CMS库有关。您给出的示例非常接近SQLAlchemy ORM多对多教程,该教程对我很有用。我在我的机器上试用了你的代码,将GROK替换为SQLAlchemy的声明性,效果很好。