我正在尝试使用flask-sqlalchemy访问所有相关记录。
我的模型类'具有以下结构:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), index=True, nullable=False)
posts = db.relationship('Post', backref='author', lazy='dynamic')
def __repr__(self):
return f'<User {self.name}>'
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(64), index=True, nullable=False)
date_posted = db.Column(db.DateTime, index=True, default=datetime.utcnow)
department_id = db.Column(db.Integer, db.ForeignKey('user.id'))
def __repr__(self):
return f'<Post {self.title}>'
我想访问与特定用户相关的帖子信息; 以下模板将传递用户记录的副本。
{% if users %}
<p>USERS</p>
<ul>
{% for user in users %}
<li> {{ user.id }}</li>
<li> {{ user.name }}</li>
{% for post in user.posts %}
<li>{{ post.title }} </li>
{% endfor %}
{% endfor %}
</ul>
{% endif %}
在将值传递给模板之前,是否需要创建某种dict来将帖子映射到他们的uers?
我很欣赏这个问题的简单性,我是一个绝对的初学者。非常感谢任何帮助。
答案 0 :(得分:0)
模板中的内容看起来正确,您现在只需将用户传递给模板即可。
@app.route('/posts', methods=['GET'])
def posts():
users = User.query.all()
return render_template('your_template.html', users=users)
所以现在模板中的{%for user in users%}指的是带有加载关系的查询用户(希望你有你的models.py,你的app.py(上面代码所在的位置)和相关的导入和模板)。
希望有所帮助