django人性化設置 時間改爲 多久前

轉自 https://jackeygao.io/words/django-tips-02-humanize.html

翻譯整理自: simpleisbetterthancomplex.com

官方文檔

Django 附帶一組模板過濾器, 可爲您的數據添加人性化選項。它用於將數字或者日期轉化爲人類友好可讀的格式.
就我個人來說, 我使用模板過濾器naturaltime非常頻繁。 比如我在2018-10-25 11:33:24定了個外賣, 在等待外賣的過程中, 訂單頁面的時間顯示爲21 minutes ago(考慮到目前是2018-10-25 11:54:46) 更好友好一點, 我能清楚的知道我等待了多長時間。 而不是2018-10-25 11:54:46這樣的時間, 讓我再計算一遍.

使用方法也非常簡單:

settings.py INSTALLED_APPS 加入django.contrib.humanize

Python

INSTALLED_APPS = [
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'django.contrib.humanize',
]

然後在 template 中, 載入此 APP 下的標籤。

Django/Jinja
{% load humanize %}

使用過濾器也非常簡單, 比如使用naturaltime過濾器.

Django/Jinja
{% extends 'base.html' %}

{% load humanize %}

{% block content %}
  <ul>
    {% for notification in notifications %}
      <li>
        {{ notification }}
        <small>{{ notification.date|naturaltime }}</small>
      </li>
    {% empty %}
      <li>You have no unread notification.</li>
    {% endfor %}
  </ul>
{% endblock %}

功能表

過濾器 作用 舉例
apnumber 英文數字 1 => one
intcomma 三位逗號數字 4500000 => 4,500,000
intword 文本數字 4500000 => 4.5 million
naturalday 友好的日期 2018-10-24 => yesterday
naturaltime 友好的時間 2018-10-25 12:00:01 => a minute ago.
ordinal 序數字符串 3 => 3rd
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章