Let’s suppose we have a model,
Foo, that references another model,
User – and there are Flask-Admin’s
ModelView for both.
Foo admin view page
I would like the entries in the
User column to be linked to the corresponding
User model view.
Do I need to modify one of Flask-Admin’s templates to achieve this?
(This is possible in the Django admin interface by simply outputting HTML for a given field and setting
allow_tags (ref) True to bypass Django’s HTML tag filter)
column_formatters for this: https://flask-admin.readthedocs.org/en/latest/api/mod_model/#flask.ext.admin.model.BaseModelView.column_formatters
Idea is pretty simple: for a field that you want to display as hyperlink, either generate a HTML string and wrap it with Jinja2
Markup class (so it won’t be escaped in templates) or use
macro helper: https://github.com/mrjoes/flask-admin/blob/master/flask_admin/model/template.py
Macro helper allows you to use custom Jinja2 macros in overridden template, which moves presentational logic to templates.
As far as URL is concerned, all you need is to find endpoint name generated (or provided) for the
User model and do
url_for('userview.edit_view', id=model.id) to generate the link.
Answered By – Joes