Python 如何查找授权django用户当前使用的小数点格式?
在Django 1.10和py 2.7中,如何找出当前授权用户的区域设置小数点,即当前用户是否使用“,”或“.”作为小数分隔符(应该是11,23还是11.23) 我正在使用“线程”局部变量进行其他一些用户设置,所有东西都可以正常工作,并且“vs.”在任何地方都可以正确使用-但是我现在需要在使用的视图中找到,但我还无法找到这一点 顺便说一句-每个授权用户都有自己的区域设置,因此一个用户可以根据用户区域设置使用“,”和另一个“.” /JensDjango内置了模板和表单。 你在哪里决定这个 在模板中:Python 如何查找授权django用户当前使用的小数点格式?,python,django,localization,decimal-point,Python,Django,Localization,Decimal Point,在Django 1.10和py 2.7中,如何找出当前授权用户的区域设置小数点,即当前用户是否使用“,”或“.”作为小数分隔符(应该是11,23还是11.23) 我正在使用“线程”局部变量进行其他一些用户设置,所有东西都可以正常工作,并且“vs.”在任何地方都可以正确使用-但是我现在需要在使用的视图中找到,但我还无法找到这一点 顺便说一句-每个授权用户都有自己的区域设置,因此一个用户可以根据用户区域设置使用“,”和另一个“.” /JensDjango内置了模板和表单。 你在哪里决定这个 在模板中
{%load l10n%}{%localize on%}{{{value}}{%endlocalize%}
或以以下形式:
要使表单字段能够本地化输入和输出数据,只需使用
本地化参数:
您必须启用本地化模块:
默认情况下,格式化系统处于禁用状态。要启用它,需要在设置文件中设置使用\u L10N=True
以下是我最后做的事情-完全赤裸,没有任何测试/检查/异常处理:
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 '.'
请随意使用“日期格式”、“千位分隔符”、“数字分组”等代替“十进制分隔符”
我在使用@jens lundstrom answer时遇到导入错误。是的,这一切都很好,谢谢;-)所以我的问题是,如何确定当前已验证的用户是否使用了“、”或“.”?
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 '.'
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())