我的mixin与下面的一个相似,我需要区分normal_relationship
attr和special
attr。
class MyMixin(object):
@declared_attr
def normal_relationship(self):
return relationship(
"CustomAttributeValue",
primaryjoin=my_good_join_function,
backref='{0}_something_else'.format(self.__name__),
cascade='all, delete-orphan',
)
@declared_attr
def _special_relationship(self):
return relationship(
"CustomAttributeValue",
primaryjoin=my_good_join_function,
backref='{0}_something'.format(self.__name__),
cascade='all, delete-orphan',
)
@hybrid_property
def special(self):
return self._special_relationship
@special.setter
def special(self, values):
self._special_relationship.append(value*2)
因为special
的获取者返回的_special_relationship
与normal_relationship
相同,所以我不知道如何检查这种差异。
getattr(MyMixin, "special")
与getattr(MyMixin, "_special_relationship")
相同。
有什么办法,或者我可以在特殊的混合属性中添加任何内容,以检查它是否有自定义setter。
基本上确定哪些属性定义了特殊的setter非常好。