這是一個初學者級別的問題。SQLAlchemy中的多對一關係
我有一個目錄mtypes的:
mtype_id name
1 'mtype1'
2 'mtype2'
[etc]
和對象的目錄,其中必須有一個相關的MTYPE:通過創建
obj_id mtype_id name
1 1 'obj1'
2 1 'obj2'
3 2 'obj3'
[etc]
我試圖做到這一點在SQLAlchemy的下面模式:
mtypes_table = Table('mtypes', metadata,
Column('mtype_id', Integer, primary_key=True),
Column('name', String(50), nullable=False, unique=True),
)
objs_table = Table('objects', metadata,
Column('obj_id', Integer, primary_key=True),
Column('mtype_id', None, ForeignKey('mtypes.mtype_id')),
Column('name', String(50), nullable=False, unique=True),
)
mapper(MType, mtypes_table)
mapper(MyObject, objs_table,
properties={'mtype':Relationship(MType, backref='objs', cascade="all, delete-orphan")}
)
當我嘗試添加一個簡單的元素,如:
mtype1 = MType('mtype1')
obj1 = MyObject('obj1')
obj1.mtype=mtype1
session.add(obj1)
我得到的錯誤:
AttributeError: 'NoneType' object has no attribute 'cascade_iterator'
任何想法?
這將是很高興看到完整的回溯至少或甚至完整的代碼樣本來重現問題。 – 2010-06-02 11:53:14