Flask-Admin - 具有原始形式的自定义视图
Flask-Admin - custom view with original form
我正在尝试在 Flask-Admin 中创建自定义编辑视图,我在其中使用原始编辑表单并向其中添加更多内容。
我想在我的模板中使用原来的:
{% extends 'admin/master.html' %}
{% import 'admin/lib.html' as lib with context %}
(...)
{% block edit_form %}
{{ lib.render_form(form, return_url, extra(), form_opts) }}
{% endblock %}
但是我无法将原始表单传递给自定义视图中的 self.render(...)
函数:
class MyView(sqla.ModelView):
# (view options)
@expose('/edit/', methods=('GET', 'POST'))
def edit_view(self):
# (custom view variables)
return self.render('my_edit_view.html')
我想我必须在 self.render
函数中传递一些参数。我试图包含一个 form = form
但它不起作用 (TypeError: 'module' object is not iterable
)...
有什么想法吗?
谢谢!!
由于这个答案弄明白了:
我认为在自定义视图中使用原始表单和额外字段的正确方法是:
class MyView(sqla.ModelView):
# (view options)
edit_template = 'my_edit_view.html'
@expose('/edit/', methods=('GET', 'POST'))
def edit_view(self):
# (custom view variables)
# for the extra variables you wanna pass on to the template:
self._template_args['foo'] = bar
return super(MyView, self).edit_view()
我正在尝试在 Flask-Admin 中创建自定义编辑视图,我在其中使用原始编辑表单并向其中添加更多内容。
我想在我的模板中使用原来的:
{% extends 'admin/master.html' %}
{% import 'admin/lib.html' as lib with context %}
(...)
{% block edit_form %}
{{ lib.render_form(form, return_url, extra(), form_opts) }}
{% endblock %}
但是我无法将原始表单传递给自定义视图中的 self.render(...)
函数:
class MyView(sqla.ModelView):
# (view options)
@expose('/edit/', methods=('GET', 'POST'))
def edit_view(self):
# (custom view variables)
return self.render('my_edit_view.html')
我想我必须在 self.render
函数中传递一些参数。我试图包含一个 form = form
但它不起作用 (TypeError: 'module' object is not iterable
)...
有什么想法吗?
谢谢!!
由于这个答案弄明白了:
我认为在自定义视图中使用原始表单和额外字段的正确方法是:
class MyView(sqla.ModelView):
# (view options)
edit_template = 'my_edit_view.html'
@expose('/edit/', methods=('GET', 'POST'))
def edit_view(self):
# (custom view variables)
# for the extra variables you wanna pass on to the template:
self._template_args['foo'] = bar
return super(MyView, self).edit_view()