Когда кросс-компиляция, файл 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).
Теперь вы можете принудительно распечатать значение без локализации.
{% load l10n %}
{{ value|unlocalize }}
Взято из https://docs.djangoproject.com/en/1.7/topics/i18n/formatting/#std:templatefilter-unlocalize
У меня проблема с отображением значений lat и lng. Мое решение было:
{{ value|safe }}
Вам необходимо создать пользовательский шаблонный фильтр .
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 }}
У меня та же проблема, и, как говорит piquadrat, это досадная ошибка, связанная с поддержкой локализации. Изменение USE_L10N = True
на False
решает эту проблему, предполагается, что это исправлено в Django 1.3.
Вы можете использовать пользовательский formats.py
(см. « Создание файлов пользовательского формата » в документации Django) и определить THOUSAND_SEPARATOR
и DECIMAL_SEPARATOR
THOUSAND_SEPARATOR = ''
DECIMAL_SEPARATOR = '.'
Это глобальный параметр, поэтому он будет влиять на все поплавки, отображаемые на вашем сайте. И вам придется включить локализацию (USE_L10N
в вашем settings.py).
Если у вас есть контроль над шаблоном, вы можете просто удалить фильтр floatformat
.
edit : Я не уверен, но, возможно, вы стали жертвой этой ошибки Django: # 13617 . Попробуйте отключить поддержку локализации в файле settings.py и посмотрите, исчезают ли ошибочные запятые:
USE_L10N = False
Если это так, взгляните на различные обходные пути, упомянутые в отчет об ошибке (самое простое - отключить локализацию, если она вам вообще не нужна).
Когда вы печатаете какую-то переменную для 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)