0

我不知道如何为我的自定义模型使用夹层分页。

文档说:

mezzanine.core.templatetags.mezzanine_tags.pagination_for(parser, token) 包括分页模板和数据,用于在分页链接中持久化查询字符串。还可以在当前查询字符串中包含逗号分隔的 var 名称字符串,以通过 exclude_vars 参数从分页链接中排除。

据我了解,在我的模板文件中,我必须包含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进入模板?

4

1 回答 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 %}where blog_posts 是分页的返回值。您无需担心模板标签中的解析器、令牌、上下文等...,它会自动拉入。

于 2013-09-18T05:07:28.227 回答