You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Wagtail模板段落中嵌入显示页面创建日期时间戳

问题说明

Wagtail管理面板创建页面时,系统默认会显示页面自创建以来过去的时长:
Wagtail后台默认时长显示效果
需要在前端HTML段落中展示页面创建时间戳,预期效果如下:
前端时间展示预期效果
当前使用的模板代码:

<div class="contenedor tarjetas mt-4 mb-4">
    {% for post in posts %}
        <div class="fila_tarjetas clearfix">
            <div class="col_tarjeta_img">
                {% image post.blog_image fill-450x450 as blog_img %}
                <a href="{{ post.url }}">
                    <img class="tarjeta_imagen" src="{{ blog_img.url }}" alt="{{ blog_img.alt }}">
                </a>
            </div>
            <div class="col_tarjeta_texto">
                <a class="tarjeta_titulo" href="{{ post.url }}">
                    <h3>{{ post.custom_title }}</h3>
                        <div class="tarjeta_contenido"> {{ post.content }} </div>
                    <a href="{{ post.url }}" class="leer_mas">Leer más &nbsp;&nbsp;&nbsp; > ></a>
                </a>
            </div>
        </div>
    {% endfor %}
</div>
实现方案

Wagtail所有Page模型默认内置两个和创建/发布时间相关的字段,直接在模板调用即可:

  • first_published_at:存储页面首次正式发布的时间,仅发布过的页面有值
  • created_at:存储页面首次在系统中创建的时间,无论是否存为草稿都有值
    配合Django模板内置过滤器可以自定义显示效果:
  • 显示格式化的绝对时间:用date过滤器指定格式,比如{{ post.first_published_at|date:"Y-m-d H:i" }}会输出「2024-05-20 14:30」格式的时间
  • 显示和后台一致的相对时长:用内置的timesince标签,比如{% timesince post.first_published_at %}前发布,会输出「3天前发布」「2周前发布」这类效果
    只需要把时间代码插入到模板中想要展示的位置即可,比如放在标题下方,修改后的参考代码:
<div class="contenedor tarjetas mt-4 mb-4">
    {% for post in posts %}
        <div class="fila_tarjetas clearfix">
            <div class="col_tarjeta_img">
                {% image post.blog_image fill-450x450 as blog_img %}
                <a href="{{ post.url }}">
                    <img class="tarjeta_imagen" src="{{ blog_img.url }}" alt="{{ blog_img.alt }}">
                </a>
            </div>
            <div class="col_tarjeta_texto">
                <a class="tarjeta_titulo" href="{{ post.url }}">
                    <h3>{{ post.custom_title }}</h3>
                    <!-- 新增创建时间展示行 -->
                    <span class="text-muted small">{{ post.first_published_at|date:"Y年m月d日" }}</span>
                    <div class="tarjeta_contenido"> {{ post.content }} </div>
                    <a href="{{ post.url }}" class="leer_mas">Leer más &nbsp;&nbsp;&nbsp; > ></a>
                </a>
            </div>
        </div>
    {% endfor %}
</div>

如果需要展示草稿的创建时间,把上面代码里的first_published_at替换成created_at即可。

内容的提问来源于stack exchange,提问作者Squall32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:54:29