django.contrib.humanize NUMBER_GROUPING

2022-08-17 21:02:55 浏览数 (1)

要件:

数字format,例:

1234567→1,234,567

方案:

使用 django.contrib.humanize

步骤:

1,INSTALLED_APP添加humanize

代码语言:python代码运行次数:0复制
INSTALLED_APPS = [
    'django.contrib.humanize',
]

NUMBER_GROUPING = 3        # 若使用language为ja 日语,需要追加,后续说明

2,templete 追加

代码语言:javascript复制
{% load humanize %}

3,使用,filter【|】

代码语言:javascript复制
{{ value|intcomma }}

用例:

代码语言:html复制
pj>templetes>xxxlist.html

{% extends 'base.html' %}

{% load humanize %}

{% block content %}

  <p>{{ value|naturaltime }}</p>   <!-- 17 Feb 2022 16:30:00 变成 now-->
  <p>{{ value|intcomma }}</p>      <!-- 4500 变成 4,500 需要定义 NUMBER_GROUPING = 3 -->
  <p>{{ value|naturalday }}</p>    <!-- 16 Feb 2022 变成 yesterday-->
  <p>{{ value|apnumber }}</p>      <!-- 1 → one , 需要注释掉 LANGUAGE_CODE = 'ja' -->
  <p>{{ value|ordinal }}</p>       <!-- 1 变成 1st -->

{% endblock %}

问题:

若语言为 ja 【NUMBER_GROUPING】被注释掉了,需要在settings.py中追加。

查看方法:

可在代码中导入对应语言的formats,查看定义内容

代码语言:javascript复制
import django.conf.locale.ja.formats
import django.conf.locale.en.formats
import django.conf.locale.zh_Hans.formats
formats.pyformats.py

参考:

django.contrib.humanize

number-grouping

0 人点赞