Python SQLAlchemy中模型的默认过滤器

Python SQLAlchemy中模型的默认过滤器,python,sqlalchemy,flask-sqlalchemy,Python,Sqlalchemy,Flask Sqlalchemy,假设我有一个名为my_table 身份证件 类型 1. A. 2. B 3. B 4. A. 听起来你可能想要单表继承,但不确定。这正是我想要的解决方案。使用ModelA或ModelB创建数据的另一个好处是可以正确设置类型值。但是,在sqlalchemy>=1.4中,使用诸如session.query(ModelA)这样的简单查询进行查询的行为将不会像预期的那样工作(但在以前的版本中工作正常。请参阅此以了解有关此主题的更多信息)。 class MyTableModel(db.Model):

假设我有一个名为
my_table

身份证件 类型 1. A. 2. B 3. B 4. A.


听起来你可能想要单表继承,但不确定。这正是我想要的解决方案。使用
ModelA
ModelB
创建数据的另一个好处是可以正确设置
类型
值。但是,在
sqlalchemy>=1.4
中,使用诸如
session.query(ModelA)
这样的简单查询进行查询的行为将不会像预期的那样工作(但在以前的版本中工作正常。请参阅此以了解有关此主题的更多信息)。
class MyTableModel(db.Model):
    __tablename__ = 'my_table'
    id = db.Column(db.Integer, primary_key=True)
    type = db.Column(db.String)

    __mapper_args__ = {
        'polymorphic_on': type
    }

class ModelA(MyTableModel):
    __mapper_args__ = {
        'polymorphic_identity': 'a'
    }

class ModelB(MyTableModel):
    __mapper_args__ = {
        'polymorphic_identity': 'b'
    }