「または」がそのままの動作をしている理由がわからないようです。私は SQLAlchemy を使用してWTForms.ext.sqlalchemy.QuerySelectField
おり、設定QuerySelectField
することもできますquery_factory
が、それがない場合はフィールドquery
メソッドにフォールバックする必要があります。
例えば
class Form1(Form):
fielda = QuerySelectField('Field A')
query_factory
次のように引数を設定することもできます。
class Form1(Form):
fielda = QuerySelectField('Field A', query_factory=somefunction)
次に、他の場所で次のようにフォームを使用します。
form = Form1(request.form)
form.fielda.query = MyObjects.query.all()
私が見ているのはMyObjects.query.all()
、空のリストを返す場合NoneType not callable
、QuerySelectField _get_object_list() メソッドのこの行で例外が発生することです。
query = self.query or self.query_factory()
基本的に、 の値に関係なく、self.query
に割り当てられていてもor
は呼び出します。self.query_factory()
None
だから、私の質問は、これは期待される動作or
ですか? 両方を評価し、最初の値がNone
. これは正しいです?