我的桌子:
db.define_table('test', Field('name'), Field('pics', 'upload'))
我想随机显示name
中的5个名字,然后我想显示pics
中与任意一个随机选择的名称具有匹配ID的图片。
这是行动:
def index():
rows = db().select(db.test.ALL, limitby=(0, 5), orderby='<random>')
myorder = rows==id
rows_two = db().select(db.test.ALL, limitby=(0, 1), groupby=db.test.pics, having=myorder)
return locals()
这是观点:
{{for i in rows_two:}}
<div style="text-align:left">
<img width="200px"
src="{{=URL('download', args=i.pics)}}" />
</div>
{{pass}}
{{block left_sidebar}}
{{for row in rows:}}
{{=LI(A(row.name, _href=URL('other', args=row.id)))}}
{{pass}}
{{end}}
我想要实现的是显示来自pics
的一个图像,其id与随机显示的名称之一匹配。当然,这不起作用,所以我很感激一些帮助。非常感谢。
答案 0 :(得分:0)
看起来不需要rows_two
,因为rows
中的每个记录都已包含图片,因此您可以使用其中任何一个。因此,请将代码更改为以下内容:
def index():
rows = db().select(db.test.ALL, limitby=(0, 5), orderby='<random>')
return locals()
在视图中:
<div style="text-align:left">
<img width="200px"
src="{{=URL('download', args=rows[0].pic)}}" />
</div>
注意,该视图只显示rows
中第一条记录的图片。