我在燒瓶應用程序中的兩個模型之間建立一對一關係時遇到了一些困難。我有兩個模型Employee
和`照片'。員工只有一張相關照片,反之亦然。即使SQLAlchemy模型指定了外鍵,關係上的NoForeignKey錯誤
這是我在我的models.py
文件中的代碼:我已經按照這裏SQL Alchemy simple relationships發現SQL鍊金術文件上的指示
class Employee(db.Model):
__tablename__ = 'employees'
id = db.Column(db.Integer, primary_key=True)
photo = db.relationship("Photo", uselist=False, back_populates='employees')
class Photo(db.Model):
__tablename__ = 'photos'
id = db.Column(db.Integer, primary_key=True)
employee_id = db.Column(db.Integer, db.ForeignKey('employees.id'))
employee = db.relationship('Photo', back_populates='photo')
。我不斷遇到的錯誤如下所示:
sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent/child tables on relationship Photo.employee
- there are no foreign keys linking these tables.
Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.
我明明就在這裏employee_id = db.Column(db.Integer, db.ForeignKey('employees.id'))
指定的外鍵。我不確定我做錯了什麼。此外,我正在閱讀文檔,它並沒有幫助uselist, backref, and back_populates
是如此相似。
有人可以幫助我嗎?幫助將不勝感激。
One to One relationship stack overflow question
感謝您的幫助davidism。你的解決方案有效,但爲什麼你的實現不同於sql鍊金術文檔?在這個頁面http://docs.sqlalchemy.org/en/latest/orm/basic_relationships.html#one-to-one孩子類引用自己,這就是爲什麼我有照片引用本身。 –
@DanRubio在文檔中看起來像一個錯字。 – davidism