首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用声明性基指定关联关系

如何使用声明性基指定关联关系
EN

Stack Overflow用户
提问于 2009-12-22 11:27:16
回答 1查看 236关注 0票数 0

我一直试图在两个表( intakemodule )之间创建一个关联关系。每个摄入与模块有一对多的关系。然而,有一个课程作业分配给每个模块,每个课程都有一个duedate,这是独特的每一个录取。

我试过了,但没有用:

代码语言:javascript
复制
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))
)

代码语言:javascript
复制
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。请在这里提供一些帮助。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2009-12-22 20:00:23

实际上,列duedate是创建的,但是在查询模型时没有将它作为某种模型属性。我需要为intake_modules_table表定义中间模型,并设置与它的关系,而不是Intake。当然,对关系列的访问将更长一些(module.infakes[0].duedatemodule.infakes[0].infake.code)。此外,您还可以像现在一样设置关联代理来访问Infake对象的列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1945807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档