Итак, есть несколько вопросов и ответов, которые затрагивают эту проблему, но я не могу смириться с ними именно с тем, чего я пытаюсь достичь.
У меня есть набор моделей, которые являются самореферентными и унаследованными. Это основной дизайн.
class BaseUser(db.Model):
id = db.Column(db.Integer, primary_key=True, nullable=False)
org = db.Column(db.Boolean, default=False, nullable=False)
# Shared Fields
__mapper_args__ = {
'polymorphic_on': org,
}
class Customer(BaseUser):
# Customer Fields
__mapper_args__ = {
'polymorphic_identity': 0
}
class Organization(BaseUser):
# Organization Fields
__mapper_args__ = {
'polymorphic_identity': 1
}
class CustomerOrganization(db.Model):
user_id = db.Column(db.ForeignKey('customer.id', ondelete=CASCADE, onupdate=CASCADE), primary_key=True, nullable=False)
org_id = db.Column(db.ForeignKey('customer.id', ondelete=CASCADE, onupdate=CASCADE), primary_key=True, nullable=False)
Я пробовал несколько разных способов создать отношения "orgs" и "members" для каждого из этих типов. Любые советы о том, как определить атрибуты relationsihp()
?