SQL-Alchemy Association Table无法按计划运行

时间:2013-11-09 17:36:03

标签: python sqlalchemy flask

我正在为我的Flask-Application编写Database-Code,虽然我的大部分代码都没有问题,但有一个关联表我无法工作而且我的想法已经用完如何解决它

任务描述:我有两个表 - “组”和“门票”(如任务) - 我想用N:M-Relationship连接。但是,我希望此关系包含一些其他信息(例如:它需要包含有关票证是否已由组完成的信息)。 另外,我想访问一个群组的门票(反之亦然),如下所示:

for t in group_one.tickets:
    print t.name

some_ticket.groups.append(a_ticket)

我按照SQLAlchemy文档(http://docs.sqlalchemy.org/en/rel_0_7/orm/relationships.html#association-object)尝试了它,但它只导致以下错误消息:
“无法确定关系Ticket.groups上父/子表之间的连接条件。指定'primaryjoin'表达式。如果'secondary'存在,则还需要'secondaryjoin'。”

在我试图让它运行时,我尝试了一些代码。目前它看起来像这样:

class Ticket(db.Model):
    __tablename__ = "Ticket"
    id = db.Column(db.Integer, primary_key=True)
    groups = db.relationship("Group", secondary = "TicketForGroup", backref="Ticket")

class Group(db.Model):
    __tablename__ = "Group"
    id = db.Column(db.Integer, primary_key=True)
    tickets = db.relationship("Ticket", secondary = "TicketForGroup", backref="Group")

class TicketForGroup(db.Model):
     __tablename__ = "TicketForGroup"

    ticket_id = db.Column(db.Integer, db.ForeignKey(Ticket.id), primary_key="True")
    ticket = db.relationship("Ticket", backref="TicketForGroup", primaryjoin = ticket_id == Ticket.id)

    group_id = db.Column(db.Integer, db.ForeignKey(Group.id), primary_key="True")
    group = db.relationship("Group", backref="TicketForGroup", primaryjoin = group_id == Group.id)

    is_closed = db.Column(db.Boolean, default=False)

但是当我尝试访问数据时唯一回来的是“AttributeError:type object'TicketForGroup'没有属性'foreign_keys'”。 毋庸置疑,我现在有点迷失,所以对我做错了什么以及如何做对的任何帮助都将不胜感激。

问候, MT

0 个答案:

没有答案