Рази
Я думаю, что вы строите неправильный корабль отношений.
Ваш корабль отношений должен быть
книга M2M предмет
предметная группа M2M
Таким образом, вам нужно создать еще одну модель для группы, и ее нужно назначить как m2m
в теме
Ваши модели будут похожи.
subject_books = Table('subject_books', Base.metadata,
Column('subject_id', Integer, ForeignKey('subjects.id')),
Column('book_id', Integer, ForeignKey('books.id')),
)
subject_group = Table('subject_groups', Base.metadata,
Column('group_id', Integer, ForeignKey('groups.id')),
Column('subject_id', Integer, ForeignKey('subjects.id')),
)
class Subject(Base):
__tablename__ = 'subjects'
id = Column(Integer, primary_key=True)
value = Column(Unicode(255), unique=True)
groups = relationship('Groups', secondary=subject_groups, backref='subjects')
class Groups(Base):
__tablename__ = 'groups'
id = Column(Integer, primary_key=True)
name = Column(Unicode(255), unique=True)
class Book(Base):
__tablename__ = 'books'
id = Column(Integer, primary_key=True)
title = Column(Unicode(255))
isbn = Column(Unicode(24))
subjects = relationship('Subject', secondary=subject_books, backref='books')
Я также проверяю документы на attribute_mapped_collection .Но каждый раз я обнаруживал, что каждый ключ связан только с одним объектом, а не с одним.Если вы читаете где-либо, предоставьте ссылку, чтобы я мог проверить, как она будет вписываться в ваш код.
Думаю, это вам поможет.