我有一个外键指向另一个模型的模型。我查询第一个模型,并想访问与其相关的模型。在Django中,我可以从外键访问模型。如何在SQLAlchemy中做到这一点?
class Model(Base): field_id = Column(Integer, ForeignKey('Model2.id')) class Model2(Base): id = Column(Integer) needed_field = Column(Integer)
models = Model.query.all() return render to template('templ.html', models=models)
Django的工作方式如下:
models = Model.objects.all() model.field_id.needed_field # loop in template
davidism.. 6
在Django中,定义外键可定义列以及与其他模型的关系。在SQLAlchemy中,您需要手动定义两者。请参阅有关定义关系的文档。
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) db = SQLAlchemy(app) class Group(db.Model): id = db.Column(db.Integer, primary_key=True) class User(db.Model): id = db.Column(db.Integer, primary_key=True) group_id = db.Column(db.ForeignKey(Group.id)) group = db.relationship(Group, backref='users') db.create_all() db.session.add(User(group=Group())) db.session.commit() u = User.query.get(1) print(u.group)
User.group_id
是将a User
与配对的外键Group
。 User.group
是关系(并且Group.users
是另一个方向上的关系)。通常,您设置并读取关系,而不是外键。
在Django中,定义外键可定义列以及与其他模型的关系。在SQLAlchemy中,您需要手动定义两者。请参阅有关定义关系的文档。
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) db = SQLAlchemy(app) class Group(db.Model): id = db.Column(db.Integer, primary_key=True) class User(db.Model): id = db.Column(db.Integer, primary_key=True) group_id = db.Column(db.ForeignKey(Group.id)) group = db.relationship(Group, backref='users') db.create_all() db.session.add(User(group=Group())) db.session.commit() u = User.query.get(1) print(u.group)
User.group_id
是将a User
与配对的外键Group
。 User.group
是关系(并且Group.users
是另一个方向上的关系)。通常,您设置并读取关系,而不是外键。