我有一个带有外键的模型到另一个模型.我查询第一个模型,并希望访问与之相关的模型.在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
解决方法:
在Django中,定义外键定义列以及与其他模型的关系.在SQLAlchemy中,您需要手动定义它们.请参阅有关defining relationships的文档.
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是将用户与组配对的外键. User.group是关系(而Group.users是另一个方向的关系).通常你设置和读取关系,而不是外键.
标签:python,sqlalchemy,flask 来源: https://codeday.me/bug/20190829/1761157.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。