宣言型クラスモデルのミックスインで同義語を使用しようとしています。
class MyMixin(object):
__my_field = Column(Boolean, name='my_field', index=True, default=True)
def __get_my_field(self):
return self.__my_field
@declared_attr
def my_field(cls): # @NoSelf
return synonym('__my_field', descriptor=property(cls.__get_my_field))
Base = declarative_base(cls=MyMixin)
class Model(Base):
__tablename__ = 'model'
value = Column(String)
コードは正常に起動しますが、そのフィールド()でクエリを実行しようとするとsession.query(Model).filter(Model.my_field==True)
、最大再帰エラーが発生します。
この他の質問で提案された解決策を試しましたが、得られるのは最大再帰超過エラーだけです。