如何更新 Flask Sqlalchemy 中的外键值?

How to update a Foreign Key value in Flask Sqlalchemy?

class VehicleModel(db.Model):
__tablenam__ = 'vehicle'
id = db.Column(db.Integer,primary_key=True)


class DriverModel(db.Model):
__tablename__ = 'driver'
id = db.Column(db.Integer,primary_key=True)
v_id = db.Column(db.Integer,db.ForeignKey('vehicle.id'))
v_rel = db.relationship('VehicleModel',backref=db.backref('vehicle',uselist=False))


def update(self,id,v_id):
    self.id = id
    self.v_id = v_id
    db.session.commit()

在上面的代码中,我无法更新 v_id 的值。 Sqlalchemy 也没有抛出任何 sql 错误。我不知道,更新方法工作正常但无法更新 v_id 值。 v_id 的值与第一次添加列时设置的值相同。

这是因为 Alembic 无法对您的 dB.Model 进行特别详细的检查,您是否必须自己更改迁移脚本。如果您使用 Flask-migrate,它将位于 migrations/versions 文件夹中。使用文件中其他地方的 alembic 语法更改此设置以更改外键。

好吧,在对关系进行某些更改后它会自动运行,所以没关系! 感谢大家的回复!