diff options
Diffstat (limited to 'f1elo/model.py')
-rw-r--r-- | f1elo/model.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/f1elo/model.py b/f1elo/model.py index 96a9ef4..3c27ac9 100644 --- a/f1elo/model.py +++ b/f1elo/model.py @@ -12,7 +12,7 @@ class Driver(Base): driver = Column(String(1024)) country = Column(String(255)) - rankings = relationship('Ranking', order_by='Ranking.rank_date', back_populates='driver') + rankings = relationship('Ranking', order_by='Ranking.rank_date', back_populates='driver', cascade="all", passive_deletes=True) def __repr__(self): return (u"<%s (#%d)>" % (self.driver, self.id)).encode('utf8') @@ -36,9 +36,9 @@ class Driver(Base): return driver driver_entry = Table('driver_entries', Base.metadata, - Column('_driver', Integer, ForeignKey('drivers.id')), - Column('_entry', Integer, ForeignKey('entries.id')), - Column('id', Integer)) + Column('_driver', Integer, ForeignKey('drivers.id', onupdate="CASCADE", ondelete="CASCADE")), + Column('_entry', Integer, ForeignKey('entries.id', onupdate="CASCADE", ondelete="CASCADE")), + Column('id', Integer, primary_key=True)) class Entry(Base): __tablename__ = 'entries' @@ -47,10 +47,11 @@ class Entry(Base): result = Column(String(255)) car_no = Column(String(255)) result_group = Column(Integer) - _race = Column(Integer, ForeignKey('races.id')) + _race = Column(Integer, ForeignKey('races.id', onupdate="CASCADE", ondelete="CASCADE")) race = relationship('Race', back_populates='entries', order_by=result_group) - drivers = relationship('Driver', secondary=driver_entry) + + drivers = relationship('Driver', secondary=driver_entry, cascade="all", passive_deletes=True) def __repr__(self): return ('#%s (%s) %s[%d]' % (self.car_no, ', '.join([driver.__repr__().decode('utf8') for driver in self.drivers]), self.result, self.result_group)).encode('utf8') @@ -63,9 +64,10 @@ class Race(Base): date = Column(Date) ranked = Column(Boolean, default=False) - _type = Column(Integer, ForeignKey('race_types.id')) + _type = Column(Integer, ForeignKey('race_types.id', onupdate="CASCADE", ondelete="CASCADE")) type = relationship('RaceType', back_populates='races', order_by='Race.date') - entries = relationship('Entry', back_populates='race', order_by='Entry.result_group') + + entries = relationship('Entry', back_populates='race', order_by='Entry.result_group', cascade="all", passive_deletes=True) def __repr__(self): return ('%s (%s)' % (self.race, self.date)).encode('utf8') @@ -77,7 +79,7 @@ class RaceType(Base): code = Column(String(255)) description = Column(String(1024)) - races = relationship('Race', back_populates='type') + races = relationship('Race', back_populates='type', cascade="all", passive_deletes=True) def __repr__(self): return ('%s (%s)' % (self.description, self.code)).encode('utf8') @@ -89,7 +91,7 @@ class Ranking(Base): rank_date = Column(Date) ranking = Column(Float) - _driver = Column(Integer, ForeignKey('drivers.id')) + _driver = Column(Integer, ForeignKey('drivers.id', onupdate="CASCADE", ondelete="CASCADE")) driver = relationship('Driver', back_populates='rankings', order_by=rank_date) def __repr__(self): |