2016-12-17 4 views
0

Probleme beim Erstellen einer Eins-zu-Viele-Beziehung für einen Benutzer mit mehreren Profilen. Hier sind meine Modelle:One-to-Many-Beziehung NoForeignKeysError

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)) 

ich die folgende Fehlermeldung erhalten:

sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent/child tables on relationship User.profiles - there are no foreign keys linking these tables. Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.

ich das Web durchsucht haben und kann nicht herausfinden, wie ich es falsch eingestellt haben.

Antwort

0

Ich denke, Sie sollten users.id anstelle von user.id verwenden, weil der Tabellenname "Benutzer" ist.

user_id = db.Column('user_id', db.String(32), db.ForeignKey('users.id'))