0

我的用户应该能够为我的表创建新行,但是当我在 Flask-AppBuilder 中使用加号按钮时,未显示主键并且生成的 SQL INSERT 语句缺少主键,这显然失败了。

如何让 Flask-AppBuilder 显示新行的主键?

例子

模型.py

class Catalogue(Model):                                                                                                                                                                                                                                                                                                       
    id = Column(String(200), primary_key=True)
    label =  Column(String(200), nullable=False)
    type =  Column(Enum("UserGroup","ApplicationSystem","Feature","EnterpriseFunction","OrganizationalUnit"), nullable=False)

视图.py

class CatalogueView(ModelView):
    datamodel = SQLAInterface(Catalogue)
    label_columns = {'label':'Name', }
    list_columns = ['id', 'label', 'type']
    related_views = [ClassifiedView]

现在,当我运行应用程序时,我可以在视图中看到“id”字段http://127.0.0.1:5000/catalogueview/list/

但是,当我在 处进入详细视图时http://127.0.0.1:5000/catalogueview/show/myexamplecatalogue,主键字段“id”被隐藏,使用 创建新条目时也会发生同样的情况http://127.0.0.1:5000/catalogueview/add,然后如上所述失败。

如何阻止 Flask-AppBuilder 隐藏我的主键并成功创建新条目?

4

1 回答 1

1

正如@IljaEverilä 所建议的,这可以使用“edit_columns”属性添加:

class CatalogueView(ModelView):
  datamodel = SQLAInterface(Catalogue)
  label_columns = {'label':'Name', }
  list_columns = ['id', 'label', 'type']
  related_views = [ClassifiedView]
  edit_columns = ['id', 'label', 'type']
于 2020-09-02T14:06:39.087 回答