python – 在flask/flask-admin中选择2字段实现

我正试图在我的一个烧瓶视图中实现Select2字段.基本上我想在烧瓶应用程序视图中使用相同的select2字段(不是烧瓶管理模型视图),就像Flask-admin模型创建视图一样.目前我的解决方案是来自wtforms的QuerySelectField,看起来像这样

class TestForm(Form):
    name= QuerySelectField(query_factory=lambda: models.User.query.all())

这允许我加载并选择我需要的所有数据,但它不提供select2搜索框等.目前我发现的所有内容都是来自flask / admin / form / fields和flask / admin / form / widgets的Select2Field和Select2Widget就像在这篇文章中的https://stackoverflow.com/questions/24644960/how-to-steal-flask-admin-tag-form-field以及http://ivaynberg.github.io/select2/的select2文档一样
据我所知,这些可以重复使用,这意味着不需要其他自定义小部件,自定义字段.

如果有人可以提供有关在应用程序中的select2字段实现的更多信息(包括视图,模板,表单文件以及如何正确地“连接”必要的js和css文件,以及如何使用数据库模型加载字段,将不胜感激需要).

最佳答案
这对我有用:

...
from wtforms.ext.sqlalchemy.fields import QuerySelectField
from flask_admin.form.widgets import Select2Widget
...

class TestForm(Form):
    name= QuerySelectField(query_factory=lambda: models.User.query.all(),
                           widget=Select2Widget())

在您的模板中:

{% extends "admin/master.html" %}
{% import 'admin/lib.html' as lib with context %}

{% block head %}
    {{ super() }}
    {{ lib.form_css() }}
{% endblock %}

{% block body %}
...
{% endblock %}

{% block tail %}
    {{ super() }}
    {{ lib.form_js() }}
{% endblock %}

如有必要,我可以尝试将最小的工作示例放在一起.

转载注明原文:python – 在flask/flask-admin中选择2字段实现 - 代码日志