我有一个不会在数据库中创建表的模型,如下所示
class Person(db.Model):
__tablename__ = 'persons'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20))
pets = db.relationship('Pet', backref='person')
class Pet(db.Model):
__tablename__ = 'pets'
id = db.Column(db.Integer, primary_key=True)
name=db.Column(db.String(20))
owner_id = db.Column(db.Integer, db.ForeignKey('person.id'),nullable=False)
问题可能是因为使用命令
后类名和表名不匹配db.create_all()
抛出错误??
答案 0 :(得分:0)
更改此
owner_id = db.Column(db.Integer, db.ForeignKey('person.id'),nullable=False)
到
owner_id = db.Column(db.Integer, db.ForeignKey('persons.id'),nullable=False)
因为你的桌子是人
并且给这个关系一个不同的名字,因为你已经有一个名为pets
的表pets = db.relationship('Pet', backref='person')
你可以这样做
persons_pets = db.relationship('Pet', backref='person')