我正在用Flask和Flask-SQLAlchemy编写一个简单的电子商务网站的后端,但是我在创建SQLAlchemy数据库时遇到了麻烦。
数据库图为follows
我为数据库编写了模型,但是当我尝试对其进行测试时,我在 Parent 和 OrderItem 之间的一对多关系中得到了此错误消息: / p>
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)
一切似乎都是正确的,我与客户和订单的关系模式非常相同,但是我不明白为什么我在这里被提示此错误。 我已经检查过属性名称是否有任何错误,但是从表名称到属性名称,一切似乎都是正确的。 在此先感谢您的任何帮助。