Как отключить форматирование для FloatField в шаблоне для Django

Когда кросс-компиляция, файл toolchain обычно устанавливает переменную CMAKE_FIND_ROOT_PATH . В сочетании с переменной CMAKE_FIND_ROOT_PATH_MODE_LIBRARY , установленной в ONLY, переменная CMAKE_FIND_ROOT_PATH используется как эффективная chroot для вызова find_library, поэтому обыскиваются только библиотеки с заданным префиксом (именами) .

Существуют аналоговые переменные для настройки поведения для find_path (используемые для поиска включают пути) и find_program.

Файл инструментальной привязки, который вы используете, фактически устанавливает CMAKE_FIND_ROOT_PATH в строка 1521 :

set( CMAKE_FIND_ROOT_PATH "${ANDROID_TOOLCHAIN_ROOT}/bin"
    "${ANDROID_TOOLCHAIN_ROOT}/${ANDROID_TOOLCHAIN_MACHINE_NAME}"
    "${ANDROID_SYSROOT}"
    "${CMAKE_INSTALL_PREFIX}"
    "${CMAKE_INSTALL_PREFIX}/share" )

и ниже устанавливает CMAKE_FIND_ROOT_PATH_MODE_* переменные в ONLY. Таким образом, вам нужно установить Boost в один из этих каталогов и дать подсказки (например, BOOST_ROOT) относительно него.

Обратите внимание, что Boost должен быть создан для целевой платформы (Android NDK в вашем случае), а не для платформы, где вы перекрестно компилируете (Linux).

29
задан Olivier Girardot 23 August 2010 в 20:17
поделиться

7 ответов

{{ float_var|stringformat:"f" }}
64
ответ дан krtek 23 August 2010 в 20:17
поделиться

Теперь вы можете принудительно распечатать значение без локализации.

{% load l10n %}

{{ value|unlocalize }}

Взято из https://docs.djangoproject.com/en/1.7/topics/i18n/formatting/#std:templatefilter-unlocalize

19
ответ дан JustinHui 23 August 2010 в 20:17
поделиться

У меня проблема с отображением значений lat и lng. Мое решение было:

{{ value|safe }}
9
ответ дан user535010 23 August 2010 в 20:17
поделиться

Вам необходимо создать пользовательский шаблонный фильтр .

from django.template import Library
from django.utils.numberformat import format

register = Library()

@register.filter
def floatdot(value, decimal_pos=4):
    return format(value, ".", decimal_pos)

floatdot.is_safe = True

Использование:

{{ float_var|floatdot }} или {{ float_var|floatdot:2 }}

5
ответ дан Pascal Polleunus 23 August 2010 в 20:17
поделиться

У меня та же проблема, и, как говорит piquadrat, это досадная ошибка, связанная с поддержкой локализации. Изменение USE_L10N = True на False решает эту проблему, предполагается, что это исправлено в Django 1.3.

2
ответ дан aldeano 23 August 2010 в 20:17
поделиться

Вы можете использовать пользовательский formats.py (см. « Создание файлов пользовательского формата » в документации Django) и определить THOUSAND_SEPARATOR и DECIMAL_SEPARATOR

THOUSAND_SEPARATOR = ''
DECIMAL_SEPARATOR = '.'

Это глобальный параметр, поэтому он будет влиять на все поплавки, отображаемые на вашем сайте. И вам придется включить локализацию (USE_L10N в вашем settings.py).

Если у вас есть контроль над шаблоном, вы можете просто удалить фильтр floatformat.

edit : Я не уверен, но, возможно, вы стали жертвой этой ошибки Django: # 13617 . Попробуйте отключить поддержку локализации в файле settings.py и посмотрите, исчезают ли ошибочные запятые:

USE_L10N = False

Если это так, взгляните на различные обходные пути, упомянутые в отчет об ошибке (самое простое - отключить локализацию, если она вам вообще не нужна).

2
ответ дан Benjamin Wohlwend 23 August 2010 в 20:17
поделиться

Когда вы печатаете какую-то переменную для javascript, лучше ее jsonify. Напишите шаблонный тег jsonify, затем используйте

{{value|jsonify}}

Шаблонные теги

from django.core.serializers import serialize
from django.db.models.query import QuerySet
import json
from django.template import Library

register = Library()

def jsonify(object):
    if isinstance(object, QuerySet):
        return serialize('json', object)
    return json.dumps(object)

register.filter('jsonify', jsonify)
0
ответ дан Trinh Hoang Nhu 23 August 2010 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: