找不到表之间的外键关系-Flask-SQLAlchemy

时间:2020-05-24 03:35:47

标签: python python-3.x flask sqlalchemy flask-sqlalchemy

我收到一条错误消息:

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'])

0 个答案:

没有答案
相关问题