假设我们有一个模型,Foo,它引用了另一个模型,User - 和Flask-Admin视图.
在Foo管理员视图页面上(例如http://mrjoes.github.io/2012/08/27/flask-admin-102.html上的第一个屏幕截图),我希望用户列中的条目为链接到相应的用户模型视图.
我是否需要修改Flask-Admin的模板之一才能实现此目的?
(这可以在Django管理界面中通过简单地输出给定字段的HTML并设置allow_tags (ref) True来绕过Django的HTML标记过滤器)
wod*_*dow 35
一些基于Joes答案的示例代码:
class MyFooView(ModelView):
def _user_formatter(view, context, model, name):
return Markup(
u"<a href='%s'>%s</a>" % (
url_for('user.edit_view', id=model.user.id),
model.user
)
) if model.user else u""
column_formatters = {
'user': _user_formatter
}
Run Code Online (Sandbox Code Playgroud)
Joe*_*oes 24
使用column_formatters此:https://flask-admin.readthedocs.org/en/latest/api/mod_model/#flask.ext.admin.model.BaseModelView.column_formatters
想法非常简单:对于要显示为超链接的字段,要么生成HTML字符串并使用Jinja2 Markup类包装它(因此它不会在模板中转义)或使用macro帮助程序:https://github.com/ mrjoes /烧瓶管理员/斑点/主/ flask_admin /模型/ template.py
宏助手允许您在覆盖模板中使用自定义Jinja2宏,这将表示逻辑移动到模板.
就URL而言,您只需要找到为User模型生成(或提供)的端点名称,并url_for('userview.edit_view', id=model.id)生成链接.
| 归档时间: |
|
| 查看次数: |
6403 次 |
| 最近记录: |