Flask appbuilder如何使用现有模型创建新模型并保存到数据库中

Posted

技术标签:

【中文标题】Flask appbuilder如何使用现有模型创建新模型并保存到数据库中【英文标题】:Flask appbuilder how to use existing model to create a new model and save into DB 【发布时间】:2021-11-25 21:20:08 【问题描述】:

基本上我有模型 A 和 B。

class A(ModelView):
datamodel = SQLAInterface(Tabel_A)

class B(ModelView):
datamodel = SQLAInterface(Table_B)

A 有这样的动作:

@action("mularchive", "Archieve", "Archieve all Really?", "fa-rocket", single=False)
def mularchive(self, items):
    self.update_redirect()
    for item in items:
        new_item = item.__class__()
        new_item.name = item.name
        B.add(new_item)
    return redirect(self.get_redirect())

所以我希望对象 b 将保存到表 B 中。 但这不起作用,它抱怨

AttributeError: 'Table A' object has no attribute 'method_permission_name'

请帮忙,我是烧瓶 appbuilder 和 python 的新手...不知道我在哪里犯了错误。

【问题讨论】:

【参考方案1】:
for item in items
    b = B(name = item.name)
    db.session.add(b)
    db.session.commit()
self.update_redirect()
return redirect(self.get_redirect())

【讨论】:

感谢您抽出宝贵时间跟进答复。您能否编辑您的答案以包括对您的代码的解释?这将有助于未来的读者更好地了解正在发生的事情,尤其是那些刚接触该语言并难以理解概念的社区成员。

以上是关于Flask appbuilder如何使用现有模型创建新模型并保存到数据库中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flask-Appbuilder 中为 OAuth2.0 使用自定义提供程序 [keycloak]?

如何将 LDAP AD 组映射到 python flask AppBuilder 中的用户角色

Flask_appbuilder的学习:安装

Flask AppBuilder Base Views

Flask AppBuilder安装

Flask AppBuilder测试