Comment faire pour désactiver la mise en forme pour FloatField dans un template de Django
je n'arrive pas à trouver une réponse définitive à cette question, et de django reinhardt, irc besoins d'authentification pour les services de...
Donc ma question est : comment peut-on forcer une sorte de mise en forme pour FloatFields dans le modèle lorsque vous êtes à l'aide de Django ?
Le problème est simple, j'ai besoin de simples points, séparés les nombres comme ceci : 42547.34
Et je me retrouve avec des valeurs séparées par des virgules...
voici un exemple de modèle où le problème se produit :
{% 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 %}];
Je vous remercie pour votre temps.
P. S. je n'ai pas ce problème lors de l'utilisation de l'admin généré des formes où les flotteurs s'affichent correctement (Mon locale en_US)
- Merci de poster le plus petit morceau de code qui illustre ce problème. Aussi, quelle est votre configuration Locale? Est-il un jeu de paramètres régionaux qui utilise "," pour la virgule?
- fait 🙂 merci à vous
- le problème avec ce code, c'est que c'est l'écriture de code javascript et les virgules sont vraiment gâcher le tout...
Vous devez vous connecter pour publier un commentaire.
stringformat:"f"
réduit à 6 décimales (par exemple, 4.3550434558 devient 4.355043). @justinhui 's réponse n'est pas (c'est à dire à l'aide deunlocalize
).|stringformat:".2f"
, mais le plus simple est de simplement écrire|safe
ou assurez-vous de ne pas localiser la sortie{% load l10n %}
et puis écrire|unlocalize
Vous pouvez maintenant forcer la valeur à être imprimé sans localisation.
Prises de https://docs.djangoproject.com/en/1.7/topics/i18n/formatting/#std:templatefilter-unlocalize
J'ai un problème de rendu de la lat et de gnl valeurs.
Ma solution a été:
Vous avez besoin pour créer un modèle personnalisé filtre.
Utilisation:
{{ float_var|floatdot }}
ou{{ float_var|floatdot:2 }}
Vous pouvez utiliser un custom
formats.py
(voir "Créer des fichiers au format" dans le Django docs) et de définirTHOUSAND_SEPARATOR
etDECIMAL_SEPARATOR
C'est un paramètre global, donc il aura une incidence sur tous les flotteurs affiché sur votre site. Et vous aurez à tourner sur la localisation (
USE_L10N
dans votre settings.py).Si vous avez le contrôle sur le modèle, vous pouvez simplement supprimer le
floatformat
filtre.modifier: je ne suis pas sûr, mais peut-être que vous êtes une victime de ce Django bug: #13617. Essayez de tourner hors support de la localisation de votre settings.py et voir si l'erreur de virgule disparaître:
Si c'est le cas, avoir un regard sur les différentes solutions de contournement mentionnées dans le rapport de bogue (le plus simple étant de tourner la localisation si vous n'avez pas besoin de toute façon).
J'ai eu le même problème, et que piquadrat dit, c'est un bug assez ennuyeux liées à la localisation de soutien. Changer
USE_L10N = True
àFalse
résoudre ce problème, il est suppposed être corrigé dans Django 1.3.Lors de l'impression de certaines variables pour javascrip, de son mieux pour jsonify il. Écrire un jsonify balise de modèle puis utilisez
Balises de modèle
jsonify
. Il n'existe pas par défaut dans le framework Django. Il nécessite un package externe pour être installé (pypi.python.org/pypi/django-jsonify) ou une personnaliséejsonify
filtre pour être écrits, vous avez juste inclus dans la mise à jour de votre réponse maintenant.