有没有办法可以在数据库视图上创建Flask admin的管理视图?我使用Postgres,创建了一个视图,以下面的视图为例:
CREATE VIEW test_view AS (
SELECT id, name, age, score
FROM student
);
如果我想设置管理视图,我该怎么做?在
我试着为它创建一个抽象模型:
^{pr2}$并添加了如下管理视图:
from flask_admin.contrib.sqla import ModelView
class StudentViewAdmin(ModelView):
_model = models.StudentView
正在将此管理视图注册到管理员:
admin.add_view(admin_views.StudentViewAdmin(admin_views.DashboardView123._model, db.session))
但是,我在将视图添加到admin时遇到以下错误:
Traceback (most recent call last):
File "manage.py", line 8, in <module>
setup_admin(app)
File "/Users/rohitjain/app.py", line 35, in setup_admin
admin.add_view(admin_views.StudentViewAdmin(admin_views.StudentViewAdmin._model, db.session))
File "/Users/rohitjain/.venvs/venv/lib/python3.5/site-packages/flask_admin/contrib/sqla/view.py", line 318, in __init__
menu_icon_value=menu_icon_value)
File "/Users/rohitjain/.venvs/venv/lib/python3.5/site-packages/flask_admin/model/base.py", line 771, in __init__
self._refresh_cache()
File "/Users/rohitjain/.venvs/venv/lib/python3.5/site-packages/flask_admin/model/base.py", line 847, in _refresh_cache
self._list_columns = self.get_list_columns()
File "/Users/rohitjain/.venvs/venv/lib/python3.5/site-packages/flask_admin/model/base.py", line 979, in get_list_columns
only_columns=self.column_list or self.scaffold_list_columns(),
File "/Users/rohitjain/.venvs/venv/lib/python3.5/site-packages/flask_admin/contrib/sqla/view.py", line 404, in scaffold_list_columns
for p in self._get_model_iterator():
File "/Users/rohitjain/.venvs/venv/lib/python3.5/site-packages/flask_admin/contrib/sqla/view.py", line 340, in _get_model_iterator
return model._sa_class_manager.mapper.iterate_properties
AttributeError: type object 'StudentView' has no attribute '_sa_class_manager'
我们真的能做到吗?我已经在Django中完成了这项工作,为postgres数据库视图设置了管理,但到目前为止还无法在Flask中设置相同的视图。有线索吗?在
有理由创建一个抽象模型吗?
__abstract__
属性设置为True
是此错误的原因。如果不从该模型中派生子类,则不需要它:同样,SQLAlchemy映射器需要一个主键(在模型中而不是在实际视图中)。应用程序会将您的视图视为一个表,这样在不更新视图时就不会产生数据库错误。在
我想如果你把你定义模型的文件的其余部分发布出来会有帮助。你可能扩展了错误的类(质量保证模型). 在
您的
ModelView
也没有列出来。我想这可能是必要的?在Here's烧瓶管理的
hello_world
文档。您可以看到它们在ModelView
中显式指定列、筛选器和可搜索性。在摘录:
管理视图可以用Python中的sandman库实现
下面是使用flask admin的代码。但首先必须通过命令安装library
pip安装sandman
运行该文件之后,您可以使用
http://localhost:5999/admin
在浏览器上查看您的管理门户相关问题 更多 >
编程相关推荐