LINUX.ORG.RU

[django] Как сделать разделителем точку вместо запятой в float?

 


0

1

В шаблоне использую переменную {{ float_var }}, джанго всталяет число с разделителем запятая (наверно локализует автоматически по тегам мета, где язык прописан), а мне для использования в JS нужна точка (т.е. вместо 35,7 35.7). Сейчас преобразую с помощью JS:

parseFloat('{{ float_var|floatformat:«4» }}'.replace(',','.'))

вместо того, чтобы сделать так:

{{ float_var|floatformat:«4» }}

Получается костыль, который не радует глаз + генерирется куча мусора. Как задать принудительно разделителем точку?

Локализует по выбранному языку, в документации есть описание. В этом случае как решение на скорую руку можно написать свой фильтр.

AlexKiriukha ★★★★
()
Ответ на: комментарий от alexkarta

Как быстрый костыль:

[code=python]

from django.template.defaultfilters import floatformat

@register.filter def myfloatformat(text, arg=-1): return floatformat(text, arg=-1).replace(',', '.')

[\code]

Не тестил

anonymous
()

1. в папке приложения сделать папку templatetags
2. внутри создать пустой __init__.py
3. а также файл floattags.py

from django.template.defaultfilters import floatformat
from django.template import Library

register = Library()

def formatted_float(value):
    value = floatformat(value, arg=4)
    return str(value).replace(',','.')


register.filter('formatted_float', formatted_float)

в темплейте прописать:

{% load floattags %}
{{ float_var|floatformat }}
Donnie_Darko
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.