NoForeignKeysError для отношения один ко многим - SQLAlchemy - PullRequest
0 голосов
/ 18 октября 2019

Я пишу бэкэнд простого сайта электронной коммерции с Flask и Flask-SQLAlchemy, но у меня проблемы с созданием базы данных SQLAlchemy.

Диаграмма БД выглядит так: следует

Я написал модели для своей базы данных, но когда я пытаюсь их протестировать, я получаю это сообщение об ошибке на One to Manyотношения между Parent и OrderItem :

sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent/child tables on relationship Product.order_item - there are no foreign keys linking these tables.  Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.

Модели следующие:

class OrderItem(db.Model):

    __tablename__ = 'OrderItem'
    order_item_number = db.Column(db.Integer(), primary_key=True)
    order_quantity = db.Column(db.Integer())
    order_item_product_number = db.Column(db.Integer(), db.ForeignKey('Product.product_number'))
    order_item_order_number = db.Column(db.Integer(), db.ForeignKey('Order.order_number'))

    def __repr__(self):
        return '<OrderItem {}{}>'.format(self.order_item_number, self.order_order_item)


class Product(db.Model):

    _tablename__ = 'Product'

    product_number = db.Column(db.Integer(), primary_key=True)
    product_availability = db.Column(db.Boolean())
    product_price = db.Column(db.Integer())
    product_unit = db.Column(db.Integer())
    product_discount = db.Column(db.Integer(), default=0)
    order_item = db.relationship('OrderItem', backref='Product')

    def __repr__(self):
        return '<Product {}'.format(self.product_number)

Все кажется правильным, у меня оченьтот же шаблон отношений с клиентом и заказом, но я не понимаю, почему я получаю сообщение об ошибке здесь. Я уже проверил наличие ошибок в именах атрибутов, но все кажется правильным, от имен таблиц до имен атрибутов. Любая помощь будет оценена, спасибо заранее.

...