无法为具有多个配置文件的用户创建一对多关系。 这是我的模特:
class User(db.Model):
__tablename__ = 'users'
id = db.Column('id', db.String(32), primary_key=True)
email = db.Column('email', db.String(45))
password = db.Column('password', db.String(45))
profiles = db.relationship('Profile', backref='user', lazy='dynamic')
class Profile(db.Model):
__tablename__ = 'profiles'
id = db.Column('id', db.String(32), primary_key=True)
user_id = db.Column('user_id', db.String(32), db.ForeignKey('user.id'))
first_name = db.Column('first_name', db.String(45))
last_name = db.Column('last_name', db.String(45))
dob = db.Column('dob', db.String(45))
sex = db.Column('sex', db.String(45))
height = db.Column('height', db.String(45))
weight = db.Column('weight', db.String(45))
zip_code = db.Column('zip_code', db.String(45))
date_created = db.Column('date_created', db.String(45))
我收到以下错误:
sqlalchemy.exc.NoForeignKeysError:无法确定关系User.profiles上的父/子表之间的连接条件 - 没有链接这些表的外键。确保引用列与ForeignKey或ForeignKeyConstraint相关联,或指定“primaryjoin”表达式。
我已经在网上搜索过,无法弄清楚我是如何设置错误的。
答案 0 :(得分:0)
我认为您应该使用users.id
而不是user.id
,因为表名是"用户"。
user_id = db.Column('user_id', db.String(32), db.ForeignKey('users.id'))