【发布时间】:2016-07-15 10:11:19
【问题描述】:
我有一个烧瓶、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)
视图函数通过分页传递模型
#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__。我最好的解决方法是什么。
【问题讨论】:
标签: python flask sqlalchemy jinja2