WTForms で QuerySelectMultipleField に default を設定する
WTFormsのSelectFieldで選択値(selected)を保持する方法 - Life is Really Short, Have Your Life!!
WTForms で Select 関連は default を外部から設定できない。
SelectField や QuerySelectField は上記にある。
QuerySelectMultipleField で DB から読み込んだ値をセレクトボックスで複数をデフォルトで設定したい場合は以下のようにすれば行けた。
# -*- coding: utf-8 -*- from wtforms.ext.sqlalchemy.fields import QuerySelectMultipleField as Base """ QuerySelectMultipleField can only add `default` value at constructor. If you want to do like following, you should use this class. .. code-block:: python form = MyForm(**values) #: `users` is `QuerySelectMultipleField` value. #: Rows is SQLAlchemy's row list. form.users.default = ([u.users.id for u in rows]) """ def iter_choices(self): if self.allow_blank: yield ('', self.blank_text, self.data is None) for pk, obj in self._get_object_list(): if obj.id in self.default: yield (pk, self.get_label(obj), True) else: yield (pk, self.get_label(obj), False)