/ / Панінації в мезоніні з джанго - джанго, перетин, мезонін

Посіднення в мезоніні з джанго - джанго, перетин, мезонін

Я не можу зрозуміти, як використовувати мезонінні сторінки для власних моделей.

Документи говорять:

mezzanine.core.templatetags.mezzanine_tags.Pagination_for (парсер, токен) Включіть шаблон сторінки та дані для збереження стовпчиків запиту в посиланнях на сторінок. Також може містити розділений комами рядок імен var у поточному рядку запиту, щоб виключити з посилань на паліативні сторінки за допомогою виключного аргументу.

Наскільки я розумію в моєму файлі шаблонів, я повинен включити mezzanine_tags і зателефонуйте {% pagination_for parser token %}.

Я дійсно не розумію, що таке синтаксичний аналізатор і токен. Я подивився на вихідний код цього тегу шаблону і це так:

@register.inclusion_tag("includes/pagination.html", takes_context=True)
def pagination_for(context, current_page, page_var="page", exclude_vars=""):
"""
Include the pagination template and data for persisting querystring
in pagination links. Can also contain a comma separated string of
var names in the current querystring to exclude from the pagination
links, via the ``exclude_vars`` arg.
"""
querystring = context["request"].GET.copy()
exclude_vars = [v for v in exclude_vars.split(",") if v] + [page_var]
for exclude_var in exclude_vars:
if exclude_var in querystring:
del querystring[exclude_var]
querystring = querystring.urlencode()
return {
"current_page": current_page,
"querystring": querystring,
"page_var": page_var,
}

Купуйте, дивлячись на користування. Я думаю, що токен - це лише число, що позначає поточну сторінку. Але як я можу отримати context в шаблоні?

Відповіді:

1 для відповіді № 1

Подивіться на blog_post_list тут: https://bitbucket.org/stephenmcd/mezzanine/src/902687d2753c449de31d4f615a3bf785ce914e96/mezzanine/blog/views.py?at=default#cl-16 і відповідний шаблон тут https://bitbucket.org/stephenmcd/mezzanine/src/902687d2753c449de31d4f615a3bf785ce914e96/mezzanine/blog/templates/blog/blog_post_list.html?at=default

Правильне використання - це використання paginate у виді, а потім дзвонити {% pagination_for blog_posts %} де blog_posts - повернення значення paginate. Ви не повинні турбуватися про аналізатор, токен, контекст і т. Д. У тегах шаблону, вони автоматично витягуються.