2017-12-02 110 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」) –

相關問題