在SQLAlchemy中,我已经了解到如何在声明一个声明性类时合并来自不同Mixin的__table_args__。
我有一个问题,示例展示了如何在MRO的最后一个类中完成这一操作,但如果我有这些Mixin,并希望它发生在MyClientMixin或Base类中,以避免为其他类型的Mixin重复此代码,该怎么办?
参考链接:Combining Table/Mapper Arguments from Multiple Mixins
我有一个问题,示例展示了如何在MRO的最后一个类中完成这一操作,但如果我有这些Mixin,并希望它发生在MyClientMixin或Base类中,以避免为其他类型的Mixin重复此代码,该怎么办?
参考链接:Combining Table/Mapper Arguments from Multiple Mixins
class LaneCarrierCommitmentSummaryMixin(object):
""" Lane Carrier Commitment Summary.
A base class for LCCS to mixin with a client specific class.
"""
__tablename__ = 'lane_carrier_commitment_summary'
__table_args__ = ((UniqueConstraint(['hashmap_key', 'bow'],
name='uq_lane_carrier_commitment_summary_hashmap_key_bow')),)
class MyClientMixin(object):
""" MyClient Mixin class for providing the ETL schema. """
__table_args__ = {'schema': 'myclient_etl'}
class MyClientLaneCarrierCommitmentSummary(LaneCarrierCommitmentSummaryMixin, DateTrackedMixin, MyClientMixin, Base):
pass
我对这个概念感到有些困惑。