В моей базе данных есть две очень похожие таблицы, которые я хочу смоделировать с помощью SQLAlchemy ORM.Один используется для производства, а другой для обеспечения качества, поэтому они точно такие же, за исключением имени таблицы.Я только начинаю изучать классы и методы классов, и я хочу сделать свой код СУХИМЫМ, поэтому я не хочу повторять те же имена столбцов и определения методов для таблиц QA.
То, что у меня есть сейчас(очень упрощенно):
class Versions(db.Model):
__tablename__ = 'versions'
ver_key = Column('version_key', Integer, primary_key=True)
market = Column('market', String(100))
year = Column('year', Integer)
def __init__(self, market, year):
self.market = market
self.year = year
@classmethod
def create(cls, market, year):
new_rec = cls(market, year)
db.session.add(new_rec)
db.session.commit()
return new_rec.ver_key
class VersionsQA(Versions):
__tablename__ = 'qa_versions'
К сожалению, это не работает так, как задумано, так как VersionsQA.create(market, year)
создает записи в таблице Versions вместо VersionsQA.
Не могли бы вы помочь мне понять, как это должно быть написано правильно?
PS @classmethod необходим, потому что он делает много других вещей, которые я не хочу писать здесь