我在Flask和Flask-SQLAlchemy上遇到问题,对于任何查询,我都需要导入所有相关模型。
现在我的auth.views.py看起来像这样(对这件事进行编程的前几行只是一个测试视图)
from flask import jsonify
from . import auth
from app.models.user import User
@auth.route('/', methods=['GET'])
def index():
users = User.query.all()
return jsonify({'name': users[0].name})
Run Code Online (Sandbox Code Playgroud)
现在我遇到一个错误
“ InvalidRequestError:初始化映射器Mapper | User | user时,表达式'Course'未能找到名称(“ name'Course'未定义”。)如果这是一个类名,请考虑在该类之后添加该Relationship()两个相关的类都已定义。”
我有一个项目,其中有一个像这样的模型包
app
??? auth
? ??? __init__.py
? ??? views.py
??? __init__.py
??? models
??? assignment.py
??? base.py
??? client.py
??? course.py
??? __init__.py
??? submission.py
??? user.py
Run Code Online (Sandbox Code Playgroud)
我的用户类与课程之间有很多对比,与提交方面有一对多。
这可以通过导入“课程”(然后是“提交”,然后是从那里的关系,最终是所有模型)来解决。
在为Pyramid项目工作时,我们还使用SQLAlchemy,但我不必导入所有模型即可完成工作。有什么想法吗?我真的无法弄清楚,也无法用Google搜索。
用户看起来像这样
user_course = db.Table(
'user_course', db.Model.metadata,
db.Column('student_id', UUID, db.ForeignKey('user.id'),
primary_key=True),
db.Column('course_id', UUID, db.ForeignKey('course.id'),
primary_key=True)
)
class User(db.Model): …Run Code Online (Sandbox Code Playgroud)