2012-03-04 2 views
1

У меня есть страница листингов для предприятий, и я хочу алфавитную разбивку на страницы/меню, как на прилагаемом скриншоте. Я хочу сделать это в web2pyWeb2py Алфавитная разбивка на страницы

Любая помощь будет оценена по достоинству.

+1

В вашем вопросе упоминается прилагаемый скриншот, но ни один не показан. – Anthony

+0

Извините, что я не смог подключиться, так как у меня нет priviliges для присоединения, и я не понял то же самое. – praveen

ответ

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) будет содержать букву (т. е. «А», «В» и т. д.). Эти значения можно использовать для генерации соответствующего запроса, который будет зависеть от того, как вы структурировали свои данные.

Если у некоторых писем нет предметов, вы можете удалить эти ссылки или сделать их неактивными. Это потребует запроса базы данных, прежде чем создавать ссылки для разбивки на страницы, чтобы вы знали, какие ссылки показывать/активировать - чтобы минимизировать удары db, вы, вероятно, должны кэшировать этот запрос в течение некоторого времени (или, еще лучше, кэшировать полный HTML-код разбивки на страницы).

Смежные вопросы