template ifequal dirs python django templates

python - ifequal - Cómo deshabilitar el formato de FloatField en plantilla para Django



templates dirs django (7)

parece que no puedo encontrar una respuesta definitiva a este problema, y ​​el irc de Django necesita autenticación para servicios ... Entonces mi pregunta es: ¿cómo se puede forzar algún tipo de formato para FloatFields en la plantilla cuando se usa Django?

El problema es simple, necesito simples números separados por puntos como este: 42547.34 Y termino con valores separados por comas ...

aquí hay un ejemplo de plantilla donde ocurre el problema:

{% for point in zone.points.all %} {% if forloop.last %} new google.maps.LatLng({{point.latitude|floatformat}},{{point.longitude|floatformat}}) {% else %} new google.maps.LatLng({{point.latitude|floatformat}},{{point.longitude|floatformat}}), {% endif %} {% endfor %}];

Gracias por tu tiempo.

PD: no tengo este problema cuando uso los formularios generados por el administrador donde los flotadores aparecen correctamente (Mi configuración regional es en_US)



Cuando se imprime alguna variable para javascrip, es mejor jsonificarla. Escriba una etiqueta de plantilla jsonify y luego use

{{value|jsonify}}

Etiquetas de plantilla

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)


Necesita crear un filtro de plantilla personalizado .

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

Uso:

{{ float_var|floatdot }} o {{ float_var|floatdot:2 }}


Puede usar un formats.py personalizado.py (consulte " Creación de archivos de formato personalizado " en los documentos de Django) y defina THOUSAND_SEPARATOR y DECIMAL_SEPARATOR

THOUSAND_SEPARATOR = '''' DECIMAL_SEPARATOR = ''.''

Esta es una configuración global, por lo que afectará a todos los flotantes que se muestran en su sitio. Y deberá activar la localización ( USE_L10N en su configuración.py).

Si tiene control sobre la plantilla, simplemente puede eliminar el filtro de floatformat .

editar : No estoy seguro, pero tal vez eres una víctima de este error de Django: #13617 . Intente desactivar el soporte de localización en su settings.py y vea si las comas erróneas desaparecen:

USE_L10N = False

Si ese es el caso, eche un vistazo a las diversas soluciones temporales mencionadas en el informe de errores (la más simple es desactivar la localización si no la necesita de todos modos).


Tengo el mismo problema, y ​​como dice piquadrat, es un error molesto relacionado con el soporte de localización. Cambiando USE_L10N = True to False resuelve esto, se supone que se fijará en Django 1.3.


Tengo un problema al representar los valores lat y lng. Mi solución fue:

{{ value|safe }}


{{ float_var|stringformat:"f" }}