如何在我的flask web应用程序中实现动态select2字段



HTML

<select id='selUser' style='width: 200px;'>
<option value='0'>- Search user -</option>
</select><br><br>
<script>
$(document).ready(function() {
$("#selUser").select2({
ajax: { 
url: "{{ url_for('main.add_user') }}",
type: "POST",
dataType: 'json',
delay: 250,
data: function (params) {
return {
searchTerm: params.term // search term
};
},
processResults: function (response) {
return {
results: response
};
},
cache: true
}
});
});
</script>

Python路由:

@main.route('/add_user', methods=['GET', 'POST'])
@login_required
def add_user():     
form = AddUserForm()
a = Group.query.with_entities(Group.name)
groups = []
for b in a:
groups.append(b[0])
data = {
'groupNames': groups
}
groups = json.dumps(groups)
if form.validate_on_submit():
User.create_user(
user=form.name.data,
email=form.email.data,
password=form.password.data,
groups=form.group.data)
flash(' User Registration Successful')
return render_template('add_user.html', form=form,data=data)

在我的路线上该怎么办?团体是我的榜样。。从路线上,我有一个需要发送到选择2框的组名列表,但我不知道如何实现。。请澄清!!如何将组名发送到ajax并在select2框中显示

您可以从wtform使用SelectField

在下面的示例中,我定义了AddUserForm类,它继承自FlaskForm,具有selectfield类型的字段(groups(。

然后在add_user路由中,我用数据库查询后获得的组的名称填充组字段

# your other imports here
from flask_wtf import FlaskForm
from wtforms import SelectField
class AddUserForm(FlaskForm):
# your other fields here
groups = SelectField('Groups')

@main.route('/add_user', methods=['GET', 'POST'])
@login_required
def add_user():     
form = AddUserForm()
a = Group.query.with_entities(Group.name)
form.groups.choice = [(i[0], i[0]) for i in a]
if form.validate_on_submit():
User.create_user(
user=form.name.data,
email=form.email.data,
password=form.password.data,
groups=form.groups.data)
flash(' User Registration Successful')
return render_template('add_user.html', form=form, data=data)

最新更新