python – 如何在flask-admin中引用ModelView

获取flask-admin ModelView的URL的正确方法是什么?

这是一个非常简单的例子:

my_admin_view.py

from flask.ext.admin.contrib.sqla import ModelView
from common.flask_app import app
from models import db, User, Role

admin = Admin(app, name="Boost Admin")

admin.add_view(ModelView(User,  db.session, category="model"))
admin.add_view(ModelView(Role,  db.session, category="model"))

my_admin_template.html

...
<p>Check out my user admin link:</p>

<a href="{{ url_for('modelview.user') }}">User view link</a>
{#                   ______________ 
                     what argument to pass in here??      #}
...

传递给url_for(…)的正确参数是什么?

我已经尝试过modelview.user,my_admin_view.modelview.user等.它们似乎都没有正确解析,我想避免硬编码链接.

谢谢!

最佳答案
好的,我在阅读了ModelView的源代码后想出来了.

首先,确保端点已命名(可以在没有命名端点的情况下执行此操作,但这会使代码更加清晰):

from flask.ext.admin.contrib.sqla import ModelView
from models import db, User, Role

admin = Admin(app, name="Boost Admin")

admin.add_view(ModelView(User,db.session,category="model", endpoint="model_view_user"))
admin.add_view(ModelView(Role,db.session,category="model", endpoint="model_view_role"))

…现在在模板中,您可以引用基本模型视图,如下所示:

URL for User model default view is: {{model_view_user.index_view}} 
URL for Role model default view is: {{model_view_role.index_view}} 

index_view函数定义为here,并实现了烧瓶管理模型ViewView的默认视图.

转载注明原文:python – 如何在flask-admin中引用ModelView - 代码日志