Wagtail CRX 的 Latest Pages Block 高级设置 模版v3.0 以后被阉割了
Wagtail CRX 的 Latest Pages Block 高级设置 模版v3.0 以后被阉割了,不知道为什么。官方给出文档介绍是,为了简化模版。我没找到新的解决方案,或者能方便自定义这个不同样式的办法。所以就给他恢复下。
客户要求:客户希望在 Wagtail CodeRed CMS(CRX)网站上使用 Latest Pages Block 实现以下功能:
- 在一个框内显示一个新闻栏目。
- 栏目中以多行形式显示新闻标题。
- 仅显示标题,不显示日期、摘要等其他内容。
- 目标是显示 10 条最近发布的新闻文章标题。
最终解决方案:
- 修改 settings.py:
- 在项目根目录的 settings.py 文件中,找到或添加 CRX_FRONTEND_TEMPLATES_BLOCKS 字典。
- 添加以下配置以扩展 Latest Pages Block 的模板选项:python
CRX_FRONTEND_TEMPLATES_BLOCKS = {"pagelistblock": [("coderedcms/blocks/pagelist_block.html","default",),("coderedcms/blocks/pagelist_simple_block.html","General, simple list",),("coderedcms/blocks/pagelist_list_group.html","General, list group navigation panel",),("coderedcms/blocks/pagelist_article_media.html","Article, media format",),("coderedcms/blocks/pagelist_article_card_group.html","Article, card group - attached cards of equal size",),("coderedcms/blocks/pagelist_article_card_deck.html","Article, card deck - separate cards of equal size",),("coderedcms/blocks/pagelist_article_card_columns.html","Article, card masonry - fluid brick pattern",),], }
- 保存文件。
- 添加对应模板:
- 在 templates/coderedcms/blocks/ 目录下创建或覆盖模板文件。
- 示例:创建 pagelist_simple_block.html,内容如下
{% extends "coderedcms/blocks/base_block.html" %} {% load wagtailcore_tags %} {% block block_render %}<ul>{% for page in pages %}{% with page=page.specific %}<li><a href="{% pageurl page %}">{{page.title}} {% if self.show_preview %}<small class="text-muted">– {{page.body_preview}}</small>{% endif %}</a></li>{% endwith %}{% endfor %} </ul> {% endblock %}