メソッドをオーバーライドしたモデルの定義がいくつかあり__repr__
ます。たとえば、次のエンティティを考慮してみましょう。
def A(db.Entity):
id = PrimaryKey(int, auto=True)
name = Required(unicode)
b = Optional("B")
def __repr__(self):
return self.name
def B(db.Entity):
id = PrimaryKey(int, auto=True)
name = Required(unicode)
a = Required("A")
def __repr__(self):
return '{n} from a={aname}'.format(n=self.name, aname = self.a)
内部でラップされている場合でも、 Flask-PonyWhoosh の)メソッドDatabaseSessionIsOver
を使用しているときに例外が発生しています。search(B, 'aaaa
db_session
@orm.db_session
def search(model, *arg, **kw):
return model._wh_.search(*arg, **kw)
__repr__
上記の例で行ったように、一部のエンティティがメソッドをオーバーライドした場合にのみ、例外が発生します 。
ただし、問題を回避するために次の文を使用しています。
with db_session:
print(search(A, 'karl'))
簡単に言えば、質問は、の使用を回避する方法、おそらくメソッドをwith ...
変更する__repr__
方法、またはパッケージからメソッドを変更する方法はありますか?ということです。
ありがとう、
PD :プリフェッチ メソッドを読んでいますが、適切ではないようです。わからない。