我正在尝试在一个flask视图中实现Select2字段。基本上,我希望flask应用程序视图(不是flask管理模型视图)中的select2字段与flask管理模型创建视图中的相同。目前,我的解决方案是来自如下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/的2个文档
据我所知,这些可以重用,这意味着不需要其他自定义小部件、自定义字段。
如果有人能提供更多关于flask应用程序中select2字段实现的信息(包括视图、模板、表单文件,以及如何正确“连接”必要的js和css文件,以及如何用我需要的数据库模型加载字段),我们将不胜感激。
我有一个类似的要求,并提出了一个最小的例子。
注意以下几点:
类
TestView
定义了三个路由:get视图、post视图和Ajax查找视图。函数
get_loader_by_name
接受字符串名称并返回QueryAjaxModelLoader
。此函数用于Ajax查找调用和TestForm
字段定义中。Select2小部件中显示的文本是用户模型的
__unicode__
方法返回的值。我使用了Faker来生成示例用户数据。
文件app.py:
文件模板/index.html:
文件模板/test.html:
2018年7月更新
添加了Github-Flask-Select2-WIP上的独立烧瓶扩展。
这对我有效:
在你的模板中:
如果有必要的话,我可以试着做一个简单的例子。
我最近使用Select2和WTForms在Flask应用程序的前端实现了一个“tags”字段。我编写了一个示例应用程序,演示了如何让它工作(用于填充select选项和动态保存新选项的视图代码是大多数工作发生的地方):
https://github.com/Jaza/flasktaggingtest
您可以在以下位置查看此应用程序的演示:
https://flasktaggingtest.herokuapp.com/
我的示例中没有AJAX自动完成(它只是在初始化表单时用所有可用的标记填充select字段)。除此之外,应该是您通常希望在烧瓶视图/模板中添加标记小部件的所有内容。
相关问题 更多 >
编程相关推荐