【问题标题】:Flask App-Builder and many to many relation? [duplicate]Flask App-Builder和多对多关系? [复制]
【发布时间】:2019-05-15 04:42:51
【问题描述】:

我在尝试实现多对多关系时遇到以下错误:
Was unable to import app Error: Neither 'Column' object nor 'Comparator' object has an attribute 'schema'

这是我的代码:

association_table = Table('association',
    Column('geo_idx', Integer, ForeignKey('geo.idx')),
    Column('container_idx', Integer, ForeignKey('container.idx'))
)


class Geo(Model):
    idx = Column(Integer, unique=True, primary_key=True)
    name = Column(String(64), unique=True, primary_key=False)
    containers = relationship("Container",
                             secondary=association_table, lazy = "subquery",
                             backref=backref('geos', lazy=True))

    def __repr__(self):
        return self.name


class Container(Model):
    idx = Column(Integer, unique=True, primary_key=True)
    name = Column(String(64), unique=True, primary_key=False)

    def __repr__(self):
        return self.name

我做了一些谷歌搜索,大多数出现此错误的人都因为没有大写 Column 而得到它,但在这种情况下并非如此。任何指针将不胜感激。

【问题讨论】:

    标签: python sqlalchemy flask-sqlalchemy flask-appbuilder


    【解决方案1】:

    通过将Model.metadata 传递给关联表创建函数来使其工作。

    association_table = Table('association', Model.metadata,
        Column('geo_idx', Integer, ForeignKey('geo.idx')),
        Column('container_idx', Integer, ForeignKey('container.idx'))
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      相关资源
      最近更新 更多