Groupby 和在 web2py 中

Groupby and having in web2py

我的table:

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 与随机显示的名称之一相匹配。当然,这是行不通的,所以我很感激这方面的帮助。非常感谢。

好像不需要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 中第一条记录的图片。