我在 db.define_table('mydatabase',
Field('a_1'),
...到 Field('a_9')
然后 Field('b_1'),
...到 Field('b_9')
和 Field('c_1','upload'),
...到 Field('c_9','upload')
有以下字段
这相当于总计27 Fields
并非所有 a
, b
和 c
都会有记录 . 但是,如果 Field('a_1')
有记录,那么所有其他字段也会有记录 .
在视图中,我只想显示带有记录的 Fields
. 我通过在 View
中使用 if
语句实现了这一点 . 这可以按预期工作,但我想知道这是否是实现此目的的最佳方式,如果这不是最佳方式,我想知道为什么这样我可以学习和改进我的代码 .
这就是我在_1419844中所拥有的:
def show():
x = db.mydatabase(request.args(0,cast=int))
return dict(x=x)
这就是我在_1419846中所拥有的:
{{if x.a_1:}}
<p style="color:white">some text {{=x.a_1}}</p>
<a class="link" href="{{=URL('download', args=x.c_1)}}"><p>some text</p></a>
<p>some text {{=x.b_1}}</p><br>
{{pass}}
然后我在 View
中重复上述 if
语句9次,每次都在 a_1
, b_1
和 c_1
中相应地更改数字 .
这工作正常,但有更好的方法吗?
1 回答
您可以使用
for
循环代替重复九次代码: