我收到一条错误消息:
Can't find any foreign key relationships between 'orders' and 'order_details'
每当我尝试创建客户对象时。它还给了我以下错误:
sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent/child tables on relationship Orders.orderdetails - there are no foreign keys linking these tables. Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint
我在做什么错? “ OrderDetails”表中的主键应该由“ Orders”表和“ Products”表的主键组成。
这是我的代码:
class Customers(db.Model):
id = db.Column(db.Integer, primary_key=True)
firstname = db.Column(db.String(30), nullable=False)
lastname = db.Column(db.String(30), nullable =False)
address = db.Column(db.String(30), nullable =False)
city = db.Column(db.String(30), nullable =False)
postalcode = db.Column(db.String(30), nullable =False)
region = db.Column(db.String(30), nullable =False)
country = db.Column(db.String(30), nullable =False)
email = db.Column(db.String(), nullable =False)
creditcard = db.Column(db.Integer, nullable =False)
orders = db.relationship('Orders', backref='customer', lazy=True)
class Orders(db.Model):
id = db.Column(db.Integer, primary_key=True)
date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
customerid = db.Column(db.Integer, db.ForeignKey('customers.id'))
orderdetails = db.relationship('OrderDetails', backref='order', lazy=True)
class Products(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(30), nullable=False)
price = db.Column(db.Float(), nullable=False)
description = db.Column(db.Text())
image = db.Column(db.String(20), nullable=False)
units = db.Column(db.Integer, nullable=False)
orderdetails = db.relationship('OrderDetails', backref='product', lazy=True)
class OrderDetails(db.Model):
productid = db.Column(db.Integer, primary_key=True)
orderid = db.Column(db.Integer, primary_key=True)
quantity = db.Column(db.Integer, nullable=False)
db.ForeignKeyConstraint(['productid', 'orderid'], ['products.id', 'orders.id'])