千位分隔符未在Django管理员中应用

时间:2018-01-31 15:11:28

标签: python django django-admin

我在Django Admin中注册了我的模型,但是Integer字段(它们是只读的)显示没有千位分隔符;这可以在管理员列表视图中以及管理员模型表单中进行。

我正在使用Django 1.11.9,使用Python 3.6。

在我的' settings.py'我有以下内容:

USE_I18N = False
USE_L10N = False
DECIMAL_SEPARATOR = ','
THOUSAND_SEPARATOR = '.'
USE_THOUSAND_SEPARATOR = True
NUMBER_GROUPING = 3

django-admin有没有办法将千位分隔符应用到我的只读字段?

- 编辑 -

similar question(来自2015年9月)没有一个自动适用于所有字段的简单答案。

1 个答案:

答案 0 :(得分:0)

我没有在django-admin中正常工作。由于我没有将admin用于面向用户的网站,因此我现在可以用逗号而不是点来格式化数字。

但是,在其他模板中,我根据django documentation使用自定义模板标记。

from django import template
from django.utils.encoding import force_text

register = template.Library()

@register.filter
def intdot(val_orig):
    """
    Similar to 'django.contrib.humanize.intcomma', but with dots.
    """
    val_text = force_text(val_orig)
    try:
        val_new = int(val_text)
    except ValueError:
        return ''

    val_new = '{:,d}'.format(val_new)
    val_new = val_new.replace(',', '.')
    return val_new