首先,请忍受我,因为我对Python / Flask和SQLAlchemy还是很陌生。我正在尝试在两个模型之间创建一对多关系,它们是:
class Stock(db.Model):
__tablename__ = 'stocks'
id = db.Column(db.Integer, primary_key=True)
...
users = db.relationship('User', secondary=user_identifier)
historical_prices = db.relationship('HistoricalPrice', backref='stock', lazy=True)
class HistoricalPrice(db.Model):
__tablename__ = 'historical_prices'
id = db.Column(db.Integer, primary_key=True)
...
stock_id = db.Column(db.Integer, db.ForeignKey('stock.id'), nullable=False)
请注意,User
和Stock
之间存在某种关系,目前可以正常使用。我遇到的问题是在Stock
和HistoricalPice
之间。
完成迁移和更新后,在我的代码中,我有:
stock = Stock.query.last()
historical = HistoricalPrice(name='Test')
stock.historical_prices.append(historical)
但是随后出现以下错误:sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent/child tables on relationship Stock.historical_prices - there are no foreign keys linking these tables. Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.
我使用了此page上的信息来建立关系。
我在这里想念什么?
答案 0 :(得分:2)
您在ForeignKey
中拼写了表格名称:
stock_id = db.Column(db.Integer, db.ForeignKey('stocks.id'), nullable=False)
您的表名为stocks
,而不是stock
。