2017-12-02 207 views
0

我有两个表:如何设置SQLAlchemy中两个表之间的关系?

  1. 公告
  2. AnnouncementsSchedule

关系是关键one(Announcements)many(AnnouncementsSchedule)

Announcements.id = AnnouncementsSchedule.announcements_id 

我试图描述SQLAlchemy的机型:

第一个表被描述为模型:

class Announcements(db.Model): 
    __tablename__ = 'announcements' 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.String(150), nullable=False) 
    text = db.Column(db.Text(), nullable=False) 
    category = db.Column(db.Integer(), nullable=False) 
    subcategory = db.Column(db.Integer(), nullable=False) 
    offer_type = db.Column(db.Integer(), nullable=False) 
    url = db.Column(db.String(150), nullable=True) 
    status = db.Column(db.Integer(), nullable=False) 
    #children = relationship("AnnouncementsSchedule", back_populates="announcements") 

二是:

class AnnouncementsSchedule(db.Model): 
    __tablename__ = 'announcements_schedule' 
    id = Column(Integer, primary_key=True) 
    week_day = db.Column(db.Integer(), nullable=True) 
    week_all = db.Column(db.Integer(), nullable=False) 
    time = db.Column(db.Time(), nullable=False) 
    announcement_id = Column(Integer, ForeignKey('announcements.announcements_id')) 

我做什么了?

+0

你有没有一个得到错误?你有什么问题? –

回答

0

你有列名错误(公告没有announcement_id):

# announcement_id = Column(Integer, ForeignKey('announcements.announcements_id')) 
# change to -> 
announcement_id = Column(Integer, ForeignKey('announcements.id')) 
+0

谢谢,那么如何从相关表中获取数据? – Jessie

+0

announcement = relationship(“Announcements”,back_populates =“schedule”) - 在第一个模型上,put - > schedules = relationship(“AnnouncementsSchedule”,back_populates =“announcement”) –

相关问题