在Django 1.10& py 2.7如何找出当前授权用户的区域设置小数点,即当前用户是否使用','或'。'作为小数分隔符(应该是11,23还是11.23)?
我正在使用_thread_locals进行其他一些用户设置,一切正常,','与'。'在任何地方使用都是正确的 - 但我现在需要在一个使用过的视图中找到并且无法弄清楚...
BTW - 每个授权用户都有自己的语言环境,因此一个用户可以拥有','和另一个'。取决于用户区域设置。/ Jens
答案 0 :(得分:1)
这是我最终做的事情 - 完全赤裸裸,没有任何测试/检查/异常处理:
from importlib import import_module
from django.utils.translation import get_language
fm = import_module('.formats', 'django.conf.locale.%s' % get_language())
try:
return getattr(fm, 'DECIMAL_SEPARATOR')
except AttributeError:
return '.'
答案 1 :(得分:0)
Django内置native localization模板和表单。 你在哪里确定这个?
在模板中:
{% load l10n %}{% localize on %}{{ value }}{% endlocalize %}
或表格形式:
要启用表单字段以本地化输入和输出数据,只需使用它 本地化论点:
class CashRegisterForm(forms.Form):
product = forms.CharField()
revenue = forms.DecimalField(max_digits=4, decimal_places=2, localize=True)
您必须启用本地化模块:
默认情况下禁用格式化系统。要启用它,必须在设置文件中设置
USE_L10N = True
。
答案 2 :(得分:0)
from django.util.format import get_format #or get_format_lazy
from django.utils.translation import get_language
decimal_seperator = get_format('DECIMAL_SEPARATOR',get_language())
随意使用“ DATE_FORMAT”,“ THOUSAND_SEPARATOR”,“ NUMBER_GROUPING”等代替“ DECIMAL_SEPARATOR”
使用@ jens-lundstrom答案有时会出现导入错误。