SQLAlchemy - Как использовать методы из одного класса (таблицы) в другом классе (таблица) - PullRequest
1 голос
/ 24 июня 2019

В моей базе данных есть две очень похожие таблицы, которые я хочу смоделировать с помощью 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 необходим, потому что он делает много других вещей, которые я не хочу писать здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...