我一直试图在两个表( intake和module )之间创建一个关联关系。每个摄入与模块有一对多的关系。然而,有一个课程作业分配给每个模块,每个课程都有一个duedate,这是独特的每一个录取。
我试过了,但没有用:
intake_modules_table = Table('tg_intakemodules',metadata,
Column('intake_id',Integer,ForeignKey('tg_intake.intake_id',
onupdate="CASCADE",ondelete="CASCADE")),
Column('module_id',Integer,ForeignKey('tg_module.module_id',
onupdate ="CASCADE",ondelete="CASCADE")),
Column('dueddate', Unicode(16))
)class Intake(DeclarativeBase):
__tablename__ = 'tg_intake'
#{ Columns
intake_id = Column(Integer, autoincrement=True, primary_key=True)
code = Column(Unicode(16))
commencement = Column(DateTime)
completion = Column(DateTime)
#{ Special methods
def __repr__(self):
return '"%s"' %self.code
def __unicode__(self):
return self.code
#}
class Module(DeclarativeBase):
__tablename__ ='tg_module'
#{ Columns
module_id = Column(Integer, autoincrement=True, primary_key=True)
code = Column(Unicode(16))
title = Column(Unicode(30))
#{ relations
intakes = relation('Intake',
secondary=intake_modules_table, backref='modules')
#{ Special methods
def __repr__(self):
return '"%s"'%self.title
def __unicode__(self):
return '"%s"'%self.title
#}当我这样做时,不会创建intake_module_table中指定的列intake_module_table。请在这里提供一些帮助。
提前感谢
发布于 2009-12-22 20:00:23
实际上,列duedate是创建的,但是在查询模型时没有将它作为某种模型属性。我需要为intake_modules_table表定义中间模型,并设置与它的关系,而不是Intake。当然,对关系列的访问将更长一些(module.infakes[0].duedate、module.infakes[0].infake.code)。此外,您还可以像现在一样设置关联代理来访问Infake对象的列表。
https://stackoverflow.com/questions/1945807
复制相似问题