Web2py алфавитная нумерация страниц - PullRequest
1 голос
/ 04 марта 2012

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

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

1 Ответ

2 голосов
/ 04 марта 2012

На вид, может быть что-то вроде:

{{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) будет содержать тип просмотра (т. Е. «Категория», «список» и т. Д.), А request.args (1) будет содержать букву (т. Е. «A», « Б "и т. Д.). Вы можете использовать эти значения для генерации соответствующего запроса, который будет зависеть от того, как вы структурировали свои данные.

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

...