Django Wagtail CMS的分页插件应用

wagtail-paginated-subpages的Python项目详细描述


一个简单的django wagtail应用程序,使用 混合/模板标签方法。

在使用MIXIN的页面下添加页面化URL:

/the-original-page/
/the-original-page/page/1/
/the-original-page/page/99/

快速启动

  1. 使用pip安装“wagtail分页子页”:

    pip install wagtail-paginated-subpages
    
  2. 将“wagtail分页”添加到已安装的应用程序设置中,如下所示:

    INSTALLED_APPS = [
        ...
        'wagtail_paginated_subpages',
    ]
    
  3. > P>导入MIXIN,并将其包含在页(或其他)类:

    from wagtail_paginated_subpages.mixins.pagination import PaginatedMixin
    
    class ContentPage(PaginatedMixin, Page):
    
        pass
    
  4. 在分页页面模板中使用分页内容:

    <ul>
        {% for page in paginated_objects %}
            <h2>{{ page.title }}</h2>
        {% endfor %}
    </ul>
    
  5. 使用分页模板标记添加分页:

    {% load wagtail_paginated_tags %}
    {% render_pagination page=page paginated_objects=paginated_objects %}
    
  6. 导航到包含子页面的页面,应显示子页面列表

定制

默认情况下,第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 %}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将长字符串转换为短得多的字符串   java类型ArrayList<Boolean>中的toArray(T[])方法不适用于参数(Boolean[])   java xfire webservice客户端获取空响应   java软件框架和软件平台有什么区别?   java构建了一个监听数据库更改并调用其他方法的软件。我做得对吗?   安卓 studio(java)中的Paypal:与服务器通信的问题   我们如何在运行时更改java提供的内置注释的消息   java成批进行http调用   序列化   当我使用Tomcat运行我的应用程序时,我得到了java。网MalformedURLException:本地主机名未知:java。网未知后异常   操作系统Java内存映射文件和刷新   java无法用v6构建JXBrowser jar。18+   java有没有办法从运行在同一台服务器上的代码中获取服务器指纹?   使用“代理”用户的java Spring Active Directory身份验证   在Android(Kotlin/Java)活动之间发送图像   java显示ArrayList对象?