繁体   English   中英

flask_sqlalchemy 关系问题,

[英]flask_sqlalchemy relationship proble,

我有一些数据的 postgres db,我可以做我想做的一切,直到我添加了与 Employee 和 EmployeeExperience 的关系,然后得到一个错误,例如:

InvalidRequestError: One or more mappers failed to initialize - can't proceed with initialization of other mappers. Triggering mapper: 'mapped class EmployeeExperience->employee_experience'. Original exception was: Mapper 'mapped class Employee->employee' has no property 'employee_experience'

我阅读了很多教程,但不明白我做错了什么,任何解决方案对我都不起作用,请帮忙,这是我的代码。

import psycopg2
import datetime

# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
from flask import Flask
from flask_bcrypt import Bcrypt
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "postgres://postgres:postgres@localhost:5433/db_name"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy()
db.init_app(app)
flask_bcrypt = Bcrypt()
flask_bcrypt.init_app(app)
app.app_context().push()
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< models
class Employee(db.Model):
    __tablename__ = "employee"
    
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    surname = db.Column(db.String(200))
    first_name = db.Column(db.String(200))
    birth_date = db.Column(db.Date)
    email = db.Column(db.String(300), unique=True)
    city = db.Column(db.String(200))
    latitude = db.Column(db.Float)
    longitude = db.Column(db.Float)
    male = db.Column(db.Integer)
    registered_on = db.Column(db.DateTime)
    active = db.Column(db.Integer)
    _password = db.Column(db.String(400))
    
    employee_experience = db.relationship("EmployeeExperience", back_populates="employee")
    
    
class EmployeeExperience(db.Model):
    __tablename__ = "employee_experience"
    
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    position = db.Column(db.String(300))
    company = db.Column(db.String(200))
    city = db.Column(db.String(200))
    description = db.Column(db.Text)
    desc_raw = db.Column(db.Text)
    
    employee_id = db.Column(db.Integer, db.ForeignKey('employee.id'))
    employee = db.relationship("Employee", back_populates="employee_experience")       
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

emp = Employee.query.first()

'mapped class Employee->employee' has no property 'employee_experience'

错误原因已明确说明。 您尚未在 Employee 模型上定义employe_experience属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM