Web2py按字母顺序排列

时间:2012-03-04 07:10:51

标签: web2py

我有一个商家列表页面,我想要一个字母顺序的分页/菜单,如附带的屏幕截图所示。我想在web2py中做到这一点

任何帮助将不胜感激。

1 个答案:

答案 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>