I'm stuck at a part of my program, but I'm not sure if this is the right place to ask. Excuses if it's not.

I have a DVD object which can have different statusses, like "on loan", "sold", etc... A dvd can only have 1 status at the time, but I'm confused about how to link it to 1 table only so I can access the correct status with dvd.status .

Here's an example:

class DVD(SQLObject):
    status = ???? # Should be sold or onloan data
    # ... special "dvd" data

class Sold(SQLObject):
    dvd = ForeignKey('DVD')
    # ... special "sold" data

class OnLoan(SQLObject):
    dvd = ForeignKey('DVD')
    # ... special "on loan" data

Why not just one table and the sqlmeta?

connection = connectionForURI('sqlite:/:memory:')

class DVD(SQLObject):
    _connection = connection
    title = StringCol(default="")
    inShelve = BoolCol(default=True)
    sold = BoolCol(default=False)
    onLoan = BoolCol(default=False)
    def _get_statuss(self):
        if self.sold:
            return "sold"
        elif self.onLoan:
            return "onLoan"
        elif self.inShelf:
            return "inShelf"
DVD.createTable()           
myFirstDVD = DVD(title="Timo")
print myFirstDVD.statuss

HTH

Petr