2012-03-04 187 views
1

我有一個商家的列表頁面,我想要一個按字母順序的分頁/菜單,如附件截圖所示。我想在web2pyWeb2py按字母順序排列

任何幫助將不勝感激。

+1

你的問題提到了一個附加的截圖,但沒有顯示。 – Anthony 2012-03-04 15:11:27

+0

對不起,我沒有附加,因爲我沒有特權附加,我沒有意識到同樣的。 – praveen 2012-03-05 06:21:50

回答

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 /默認/瀏覽/分類/ 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)將包含瀏覽類型(即, 「類別」, 「列表」 等),和request.args中(1 )將包含該字母(即,「A」,「B」等)。您可以使用這些值生成適當的查詢,這將取決於您如何構建數據。

如果某些字母沒有任何項目,您可以考慮刪除這些鏈接或使其無效。這需要在生成分頁鏈接之前進行數據庫查詢,以便知道顯示/激活哪些鏈接 - 爲了最大限度地降低數據庫命中率,您應該可以緩存該查詢一段時間(或更好地緩存完整的分頁HTML)。