本文介绍了SQLAlchemy/WTForms:为 QuerySelectField 设置默认选择值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个 [例子][1] 在 Flask 中设置一个带有 WTForms 和 SQLAlchemy 的表单,并在表单中添加一个 QuerySelectField.我没有使用 flask.ext.sqlalchemy,我的代码:

This [example][1] to set up a form with WTForms and SQLAlchemy in Flask and add a QuerySelectField to the form works. I am not using flask.ext.sqlalchemy, my code:

ContentForm = model_form(Content, base_class=Form)
ContentForm.author = QuerySelectField('Author', get_label="name")
myform = ContentForm(request.form, content)
myform.author.query = query_get_all(Authors)

现在我要设置 QuerySelectField 的选择列表的默认值.

尝试在 QuerySelectField 中传递 default kwarg 并设置 selected 属性.没有任何效果.我错过了一些明显的东西吗?有人可以帮忙吗?

Tried passing a default kwarg in QuerySelectField and setting selected attributes. Nothing worked. Am I missing something obvious? Can someone help?

推荐答案

您需要将您的 default 关键字参数设置为您想成为的 Authors 实例默认:

You need to set your default keyword argument to the instance of Authors that you want to be the default:

# Hypothetically, let's say that the current user makes the most sense
# This is just an example, for the sake of the thing
user = Authors.get(current_user.id)
ContentForm.author = QuerySelectField('Author', get_label='name', default=user)

或者,您可以在实例化时向字段提供实例:

Alternately, you can provide the instance to the field on instantiation:

# The author keyword will only be checked if
# author is not in request.form or content
myform = ContentForm(request.form, obj=content, author=user)

这篇关于SQLAlchemy/WTForms:为 QuerySelectField 设置默认选择值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-04 07:59