Groupby并拥有web2py

时间:2015-01-22 14:23:48

标签: web2py

我的桌子:

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与随机显示的名称之一匹配。当然,这不起作用,所以我很感激一些帮助。非常感谢。

1 个答案:

答案 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中第一条记录的图片。