cho*_*433 5 sqlalchemy flask flask-sqlalchemy flask-admin
我已经有一个使用我的 SQLAlchemy 模型的应用程序,我现在正在尝试在顶部添加一个 Flask 管理网站来管理数据库中的一些数据。这个模型已经在整个现有应用程序中设置和工作,所以我知道关系配置正确。在我的数据库中,data_package 表对供应商表有一个 FK,这已作为关系添加。但是,当我创建一个烧瓶模型视图以允许编辑 data_package 时,我收到了错误:
例外:找不到模型的反向关系
我添加了下面代码的一个子集,还有更多的列和逻辑,但这是我必须尝试和测试问题修复程序的最低限度。问题发生是因为我添加了inline_models = (Supplier, )这是我需要的,因为我想选择允许更改数据包的供应商。
抛出异常的代码行是https://github.com/flask-admin/flask-admin/blob/master/flask_admin/contrib/sqla/form.py#L558。这样做的原因是关系方向被定义为 ONETOMANY,并且有一个检查以确保方向是 MANYTOONE 或 MANYTOMANY
Base = declarative_base()
class Supplier(Base):
__tablename__ = 'supplier'
id = Column(Integer, primary_key=True)
name = Column(String(100), nullable=False)
class DataPackage(Base):
__tablename__ = 'data_package'
id = Column(Integer, primary_key=True)
name = Column(String(100), nullable=False)
supplier_id = Column(Integer, ForeignKey('supplier.id'), index=True, nullable=False)
supplier = relationship("Supplier", backref='packages')
class DataPackageAdminView(ModelViewOnly):
form_columns = ['name', 'supplier']
inline_models = (Supplier,)
def create_app():
settings.configure_orm()
app = Flask(__name__)
app.config.from_pyfile('config.py')
@app.route('/')
def index():
return '<a href="/admin/">Click me to get to Admin!</a>'
admin = Admin(app, name='Test Editor', template_mode='bootstrap3')
admin.add_view(DataPackageAdminView(DataPackage, settings.Session, category='Data Sources'))
return app
if __name__ == '__main__':
app = create_app()
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1301 次 |
| 最近记录: |