1

メソッドをオーバーライドしたモデルの定義がいくつかあり__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, 'aaaadb_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 :プリフェッチ メソッドを読んでいますが、適切ではないようです。わからない。

4

1 に答える 1