我有一个烧瓶,sqlalchemy,jinja2应用程序,以及以下问题。
我试图在html表格中显示一个模型并对其进行分页。该模型中有一堆外键,所以在表中我看到了外键。我想显示模型的__repr__
或该模型的其中一个字段
# models.py
class WorkLog(db.Model):
__tablename__ = 'work_log'
id = db.Column(db.Integer, primary_key=True)
mechanic = db.Column(db.Integer, db.ForeignKey('users.id'))
building_id = db.Column(db.Integer, db.ForeignKey('buildings.id'))
elevator_id = db.Column(db.Integer, db.ForeignKey('elevators.id'))
work_type_id = db.Column(db.Integer, db.ForeignKey('work_type.id'))
component_id = db.Column(db.Integer, db.ForeignKey('component.id'))
date = db.Column(db.Date(), default=datetime.utcnow().date())
time_in = Column(TIME(), default=(datetime.utcnow() - timedelta(hours=4)).time())
time_out = Column(TIME(), default=(datetime.utcnow() - timedelta(hours=2)).time())
notes = db.Column(db.Text)
view函数传递带分页的模型
#views.py
# build the time review table with pagination
u = User.query.get(current_user.get_id())
work_logs = u.work_log.paginate(page, 10, False).items
return render_template('mechanic/mechanic.html', form=form, logs=work_logs)
模板的相关部分
mechanic.html
<table class="table table-striped">
<thead>
<tr>
<th>Building</th>
<th>Elevator</th>
<th>Work Type</th>
<th>Time In</th>
<th>Time Out</th>
</tr>
</thead>
<tbody>
{% for log in logs %}
<tr>
<td>{{ log.building_id }}</td>
<td>{{ log.elevator_id }}</td>
<td>{{ log.work_type_id }}</td>
<td>{{ log.time_in }}</td>
<td>{{ log.time_out }}</td>
</tr>
{% endfor %}
</tbody>
</table>
三个字段结束id是外键,并且希望显示该对象或字段的__repr__
。我最好的办法是什么。
答案 0 :(得分:0)
你只需要定义两个模型之间的关系 - 你已经定义了FK
关系,所以很简单:
buildings = db.relationship('Buildings')
可让您{{ log.buildings }}
获取__repr__
对象的Buildings
。