如何在Wagtail模板中访问默认页面模型?
解决Wagtail模板中访问发布日期的问题
嘿,我来帮你搞定这个问题!其实你完全不用更换页面模型——你的SomeClass继承自Wagtail的Page基类,而Page本身就自带published_date字段,只是可能有几个小细节你没注意到:
几个关键检查点
- 页面是否已发布:
published_date只有在页面正式发布后才会被赋值,草稿状态下这个字段是空的。先去Wagtail后台把你的页面点击「发布」试试。 - 模板变量拼写:确保你写的是
{{ page.published_date }},注意大小写(Wagtail里这个字段是小写开头的,别写错成驼峰式)。 - 日期格式化处理:直接输出日期对象可能显示不友好,甚至在某些环境下看起来像没生效,建议用Django的
date过滤器格式化:
换成中文常用格式就是:{{ page.published_date|date:"F j, Y" }}{{ page.published_date|date:"Y年m月d日 H:i" }}
修改后的模板示例
给你一个完整的模板参考,加上日期显示和空值判断(避免页面未发布时出现空白内容):
{% extends "base.html" %} {% load wagtailcore_tags %} {% block base_content %} {{ page.intro }} {{ page.body_small }} {% if page.published_date %} <p class="published-date">发布于: {{ page.published_date|date:"Y年m月d日" }}</p> {% endif %} {% endblock %}
额外小提示
Wagtail的Page基类还自带其他实用的日期字段,你也可以按需使用:
first_published_at:页面第一次被发布的日期last_published_at:页面最后一次更新发布的日期
内容的提问来源于stack exchange,提问作者Igoranze
相关产品推荐
相关产品推荐

