我有一个商家列表页面,我想要一个字母顺序的分页/菜单,如附带的屏幕截图所示。我想在web2py中做到这一点
任何帮助将不胜感激。
答案 0 :(得分:2)
在视图中,可能是:
{{import string}}
{{for browse_type in ['category', 'listing', 'locality', 'brand']:}}
{{=CAT('Browse by ', browse_type, ' ',
*[A(letter, _href=URL('default', 'browse', args=[browse_type, letter]))
for letter in string.uppercase])}}
{{pass}}
这将生成一组链接,如/ yourapp / default / browse / category / A等。当然,您需要更多地填写HTML以获得您想要的确切格式/布局 - 以上只是如何生成链接的一个例子。
然后在控制器中:
def browse():
if len(request.args) < 2:
redirect(URL('default', 'somewhere'))
[code to generate items to browse based on browse type and letter]
注意,request.args(0)将包含浏览类型(即“category”,“listing”等),request.args(1)将包含该字母(即“A”,“ B“等。您可以使用这些值生成相应的查询,这取决于您如何构建数据。
如果某些字母没有任何项目,您可以考虑删除这些链接或使其无效。这将需要在生成分页链接之前进行数据库查询,以便您知道哪些链接显示/激活 - 为了最小化db命中,您应该缓存该查询一段时间(或者更好的是,缓存完整的分页HTML)。 / p>