Я пытаюсь создать объект «Продукт» в SQLAlchemy, и до сих пор я получил все, что работает, за исключением «аксессуаров» Продукта. То, что у меня есть, это продукт со списком пар поле / значение (т.е. вместимость: 12 л и т. Д.), А также целочисленный идентификатор и номер по каталогу. Я хотел бы иметь возможность ассоциировать определенные «аксессуары» с данным продуктом, где эти аксессуары являются и продуктами. По сути, я просто хочу таблицу сопоставлений, которая имеет product_id и accessory_id, которые оба ссылаются на идентификатор в таблице Products. Это то, что я до сих пор:
product_accessories=Table('product_accesssories',Base.metadata,\
Column('product_id',Integer,ForeignKey('product.product_id')),\
Column('accessory_id',Integer,ForeignKey('product.product_id')))
class Product(Base):
__tablename__='product'
id=Column('product_id',Integer,primary_key=True)
catNo=Column('catalog_number',String(20))
fields=relationship('ProductField')
accessories=relationship('Product',secondary=product_accessories)
Я получаю сообщение об ошибке «Не удалось определить условие соединения между родительскими / дочерними таблицами в отношении Product.accessories». Я пытался поиграться с этим и не смог никуда добраться. Я не хочу терять уникальную ссылку на продукт, и я чувствую, что должен быть более простой способ сделать это, кроме упаковки аксессуаров в другой класс.
Любая помощь будет принята с благодарностью!