一对多关系上的NoForeignKeysError-SQLAlchemy

时间:2019-10-18 12:37:07

标签: python database sqlite sqlalchemy flask-sqlalchemy

我正在用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)

一切似乎都是正确的,我与客户和订单的关系模式非常相同,但是我不明白为什么我在这里被提示此错误。 我已经检查过属性名称是否有任何错误,但是从表名称到属性名称,一切似乎都是正确的。 在此先感谢您的任何帮助。

0 个答案:

没有答案