我似乎無法找出爲什麼「或」的行爲是這樣。我使用的SQLAlchemy和WTForms.ext.sqlalchemy.QuerySelectField
和QuerySelectField
可以有query_factory
集,但如果缺少它應該回落到田間地頭query
方法:Python/SQLAlchemcy「或」功能
例如
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()
返回一個空列表,我在QuerySelectField _get_object_list()方法的這一行中得到一個NoneType not callable
異常:
query = self.query or self.query_factory()
基本上,不管什麼self.query
值時,or
依舊在呼喚,即使它被分配給None
self.query_factory()
。
所以,我的問題是,這是預期的行爲or
?看起來,它評估兩者和然後它決定是否需要使用第二個值,如果第一個是None
。它是否正確?
你確定它的'或'那的呼喚'self.query_factory()'在這裏嗎?你確定沒有別的東西叫'self.query_factory()'嗎? – inspectorG4dget