summaryrefslogtreecommitdiff
path: root/f1elo/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'f1elo/model.py')
-rw-r--r--f1elo/model.py22
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):