0
我正在嘗試sqlalchemy來正確映射我的數據。請注意,統一的組基本上是一組組。 (一個統一組映射到許多組,但每個組只能映射到一個ug)。SQLAlchemy映射問題
所以基本上這是我unifiedGroups的定義:
CREATE TABLE `unifiedGroups` (
`ugID` INT AUTO_INCREMENT,
`gID` INT NOT NULL,
PRIMARY KEY(`ugID`, `gID`),
KEY(`gID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
;
注意,每一行是一個UGID,GID元組。 (我不知道每ugID有多少gID,所以這可能是最明智和最簡單的方法)。
我UnifiedGroup類定義
class UnifiedGroup(object):
"""UnifiedProduct behaves very much like a group
"""
def __init__(self, ugID):
self.ugID=ugID
#Added by mapping
self.groups=False
def __str__(self):
return '<%s:%s>' % (self.ugID, ','.join([g for g in self.groups]))
這是我的映射表:
tb_groupsInfo = Table('groupsInfo', metadata,
Column('gID', Integer, primary_key=True),
Column('gName', String(128)),
)
tb_unifiedGroups = Table('unifiedGroups', metadata,
Column('ugID', Integer, primary_key=True),
Column('gID', Integer, ForeignKey('groupsInfo.gID')),
)
我以下列方式映射貼圖:
mapper(UnifiedGroup, tb_unifiedGroups, properties={
'groups': relation(Group, backref='unifiedGroup')
})
然而,當我試圖做groupInstance.unifiedGroup,我得到一個空的列表[], while groupInstance.unifiedGroup.groups返回我一個錯誤: AttributeError的: 'InstrumentedList' 對象有沒有屬性 '組'
Traceback (most recent call last):
File "Mapping.py", line 119, in <module>
print p.group.unifiedGroup.groups
AttributeError: 'InstrumentedList' object has no attribute 'groups'
有什麼不對?