Django Wagtail CMS的分页插件应用
wagtail-paginated-subpages的Python项目详细描述
一个简单的django wagtail应用程序,使用 混合/模板标签方法。
在使用MIXIN的页面下添加页面化URL:
/the-original-page/ /the-original-page/page/1/ /the-original-page/page/99/
快速启动
使用pip安装“wagtail分页子页”:
pip install wagtail-paginated-subpages
将“wagtail分页”添加到已安装的应用程序设置中,如下所示:
INSTALLED_APPS = [ ... 'wagtail_paginated_subpages', ]
在分页页面模板中使用分页内容:
<ul> {% for page in paginated_objects %} <h2>{{ page.title }}</h2> {% endfor %} </ul>
使用分页模板标记添加分页:
{% load wagtail_paginated_tags %} {% render_pagination page=page paginated_objects=paginated_objects %}
导航到包含子页面的页面,应显示子页面列表
from wagtail_paginated_subpages.mixins.pagination import PaginatedMixin class ContentPage(PaginatedMixin, Page): pass
定制
默认情况下,第1页自动重定向到基页URL (搜索引擎优化)。可以更新此项以将基页重定向到/page/1/if 首选:
PAGINATION_REDIRECT_INDEX_TO_ROOT = True # redirects /page/1/ to page.url PAGINATION_REDIRECT_INDEX_TO_ROOT = False # redirects page.url to /page/1/
页面按12页分页:
PAGINATION_PAGE_SIZE_DEFAULT = 99 # Number of items per page
要在“show:”列表中显示的页面大小选项:
PAGINATION_DEFAULT_PAGE_SIZES = [12, 24, 48, 96] # Options for page sizes
默认情况下,MIXIN返回当前页的所有子页面,但是 可以通过定义get_child_页面查询集来更改此查询:
class ContentPage(PaginatedMixin, BaseCMSPage): def get_child_page_queryset(self): return self.get_children().live().order_by('-first_published_at')
可以通过在中创建新模板来自定义分页标记:
templates/wagtail_paginated_subpages/pagination.html
按设计,子页列表未设计为模板标记 有太多的方式来设置内容列表的样式,使其变得有价值。 只需更新步骤3中的标记即可更新这些标记。
可以使用以下命令将规范元标记添加到页眉:
{% load wagtail_paginated_tags %} {% render_pagination_meta page=page paginated_objects=paginated_objects %}