Flask SQLAlchemy, где разместить вспомогательные таблицы, чтобы обе модели могли их читать? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть две модели, подобные этой:

class Category(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20), nullable=False)
    products = db.relationship(
                "Product", 
                secondary=associations, lazy="subquery",
                back_populates="categories")

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20), nullable=False)
    categories = db.relationship(
                "Category", 
                secondary=associations, lazy="subquery",
                back_populates="products")

и мой вспомогательный стол, потому что они связаны между собой:

associations = db.Table('associations',
    db.Column('category_id', db.Integer, db.ForeignKey('category.id'), primary_key=True),
    db.Column('product_id', db.Integer, db.ForeignKey('product.id'), primary_key=True)
)

Мой вопрос: я хочу организовать свою Product и Category в 2 разных файлах внутри папки Models, чтобы я мог поместить ассоциацию, чтобы оба файла могли ее прочитать?

Я попытался поместить ее в другой файл association.py, но когда я запустил свой код, он дал я: sqlalchemy.exc.InvalidRequestError: Table 'category' is already defined for this MetaData instance. Specify 'extend_existing=True' to redefine options and columns on an existing Table object.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...