Я пишу бэкэнд простого сайта электронной коммерции с 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)
Все кажется правильным, у меня оченьтот же шаблон отношений с клиентом и заказом, но я не понимаю, почему я получаю сообщение об ошибке здесь. Я уже проверил наличие ошибок в именах атрибутов, но все кажется правильным, от имен таблиц до имен атрибутов. Любая помощь будет оценена, спасибо заранее.